VB.net 中的基本数学函数

Basic math functions in VB.net

所以我目前正在添加一个基本的计算器,它允许用户定义 2 个变量,然后按下一个按钮,将变量放入一个基本的数学方程式中并显示结果,但我想我已经做到了完全错误。

这是我第一次在 VB 中使用数学函数,如果有人能告诉我哪里出错了,我将不胜感激。

到目前为止,这是我的代码:

Imports System.Math
Public Class SOGACALC
Dim soga As String = Math.Abs(72 - months.Text) * opp.Text
Private Sub SOGACALC_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SOGAValue.Text = soga
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    HOME.Show()
    Me.Close()
End Sub

End Class

你写的地方

Dim soga As String = Math.Abs(72 - months.Text) * opp.Text

我怀疑您预计 soga 将成为其中所指属性的函数,并且会随着这些属性的变化而变化。那样不行。

获取随参数变化的值的方法是定义一个函数,因此您可能有:

Friend Function Soga(monthValue As Control, oppThing As Control) As String
    Dim month As Integer = CInt(monthValue.Text)
    Dim opp As Decimal = CDec(oppThing.Text)

    Return (Math.Abs(72 - month) * opp).ToString()

End Function

并这样称呼它:

'TODO: Give Button1 a meaningful name.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SOGAValue.Text = Soga(months, opp)
End Sub

表单上有控件名称 "months" 和 "opp"。

我强烈建议您使用 Option Strict On - 它会指出代码中的问题并为您提出更正建议。

请注意,我为 opp 使用了 Decimal 类型 - 我不得不猜测合适的类型,因为在您向我们展示的代码中没有任何地方表明它需要什么类型。

一个改进是使用 TryParse 方法而不是 CInt/CDec,这样您就可以在用户犯了一个简单的输入错误时通知他们。