Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 调用语句_Vb.net_Logic_Call_Statements - Fatal编程技术网

Vb.net 调用语句

Vb.net 调用语句,vb.net,logic,call,statements,Vb.net,Logic,Call,Statements,我试图在VisualStudio中使用call语句,但在理解逻辑时遇到了一些问题。我正在尝试创建一个windows窗体程序来计算工资单情况下的“净工资”。只是想了解一下这些语句是如何工作的 我只是对如何计算加班工资部分感到困惑,如果没有加班,那么就只支付常规工资 这就是我到目前为止所做的: 公开课表格1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But

我试图在VisualStudio中使用call语句,但在理解逻辑时遇到了一些问题。我正在尝试创建一个windows窗体程序来计算工资单情况下的“净工资”。只是想了解一下这些语句是如何工作的

我只是对如何计算加班工资部分感到困惑,如果没有加班,那么就只支付常规工资

这就是我到目前为止所做的:

公开课表格1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim hours As Double
    Dim rate As Double
    Dim regpay As Double
    Dim overpay As Double

    hours = TextBox5.Text
    rate = TextBox4.Text

    If hours > 40 Then
        Regular(regpay)
        Overtime(overpay)
    Else
        Regular(regpay)
    End If

End Sub

Sub Regular(ByRef regpay As Double)

End Sub

Sub Overtime()

End Sub

我相信这很简单,我只是很难理解逻辑和语法。

我建议将正则和超时定义为返回计算值的函数,即:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim hours As Double
    Dim rate As Double
    Dim regpay As Double
    Dim overpay As Double

    hours = TextBox5.Text
    rate = TextBox4.Text

    If hours > 40 Then
        regpay = Regular(40, rate)
        overpay = Overtime(hours - 40, rate)
    Else
        regpay = Regular(hours, rate)
    End If

    Dim netPay = regPay + overPay
    ' TODO: write netPay back to the form
End Sub

Function Regular(hours As Double, rate As Double) As Double
    Return hours * rate
End Function

Function Overtime(hours As Double, rate As Double) As Double
    Return hours * rate ' Note overtime may be paid at a different rate
End Function

此外,为了保证财务计算的准确性,我建议使用类型over double。

我建议将Regular和加班定义为返回计算值的函数,即:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim hours As Double
    Dim rate As Double
    Dim regpay As Double
    Dim overpay As Double

    hours = TextBox5.Text
    rate = TextBox4.Text

    If hours > 40 Then
        regpay = Regular(40, rate)
        overpay = Overtime(hours - 40, rate)
    Else
        regpay = Regular(hours, rate)
    End If

    Dim netPay = regPay + overPay
    ' TODO: write netPay back to the form
End Sub

Function Regular(hours As Double, rate As Double) As Double
    Return hours * rate
End Function

Function Overtime(hours As Double, rate As Double) As Double
    Return hours * rate ' Note overtime may be paid at a different rate
End Function

此外,为了保证财务计算的准确性,我建议使用类型over double。

我建议将Regular和加班定义为返回计算值的函数,即:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim hours As Double
    Dim rate As Double
    Dim regpay As Double
    Dim overpay As Double

    hours = TextBox5.Text
    rate = TextBox4.Text

    If hours > 40 Then
        regpay = Regular(40, rate)
        overpay = Overtime(hours - 40, rate)
    Else
        regpay = Regular(hours, rate)
    End If

    Dim netPay = regPay + overPay
    ' TODO: write netPay back to the form
End Sub

Function Regular(hours As Double, rate As Double) As Double
    Return hours * rate
End Function

Function Overtime(hours As Double, rate As Double) As Double
    Return hours * rate ' Note overtime may be paid at a different rate
End Function

此外,为了保证财务计算的准确性,我建议使用类型over double。

我建议将Regular和加班定义为返回计算值的函数,即:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim hours As Double
    Dim rate As Double
    Dim regpay As Double
    Dim overpay As Double

    hours = TextBox5.Text
    rate = TextBox4.Text

    If hours > 40 Then
        regpay = Regular(40, rate)
        overpay = Overtime(hours - 40, rate)
    Else
        regpay = Regular(hours, rate)
    End If

    Dim netPay = regPay + overPay
    ' TODO: write netPay back to the form
End Sub

Function Regular(hours As Double, rate As Double) As Double
    Return hours * rate
End Function

Function Overtime(hours As Double, rate As Double) As Double
    Return hours * rate ' Note overtime may be paid at a different rate
End Function

此外,为了保证财务计算的准确性,我建议使用双精度上的类型。

要做到这一点,您只需要一种方法。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

    Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
    Dim rate As Decimal = Decimal.Parse(TextBox4.Text)   
    Dim regpay As Decimal 
    Dim overpay As Decimal 

    If hours > 40D Then
        regpay = CalculatePay(40D, rate)
        overpay = CalculatePay(hours - 40D, rate * 1.5D)
    Else
        regpay = CalculatePay(hours, rate)
        overpay = 0D
    End If

End Sub

Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
    Return hours * rate
End Function

你真的只需要一种方法就可以做到这一点。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

    Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
    Dim rate As Decimal = Decimal.Parse(TextBox4.Text)   
    Dim regpay As Decimal 
    Dim overpay As Decimal 

    If hours > 40D Then
        regpay = CalculatePay(40D, rate)
        overpay = CalculatePay(hours - 40D, rate * 1.5D)
    Else
        regpay = CalculatePay(hours, rate)
        overpay = 0D
    End If

End Sub

Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
    Return hours * rate
End Function

你真的只需要一种方法就可以做到这一点。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

    Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
    Dim rate As Decimal = Decimal.Parse(TextBox4.Text)   
    Dim regpay As Decimal 
    Dim overpay As Decimal 

    If hours > 40D Then
        regpay = CalculatePay(40D, rate)
        overpay = CalculatePay(hours - 40D, rate * 1.5D)
    Else
        regpay = CalculatePay(hours, rate)
        overpay = 0D
    End If

End Sub

Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
    Return hours * rate
End Function

你真的只需要一种方法就可以做到这一点。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

    Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
    Dim rate As Decimal = Decimal.Parse(TextBox4.Text)   
    Dim regpay As Decimal 
    Dim overpay As Decimal 

    If hours > 40D Then
        regpay = CalculatePay(40D, rate)
        overpay = CalculatePay(hours - 40D, rate * 1.5D)
    Else
        regpay = CalculatePay(hours, rate)
        overpay = 0D
    End If

End Sub

Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
    Return hours * rate
End Function

如果小时数>40,则regpay=Regular(40,rate)overpay=加班费(小时数-40,rate)否则regpay=Regular(小时数,rate)结束,如果抛出语法错误“Regular(小时数,rate)”不返回任何值…此外,之后,我需要能够显示工资总额,净工资是多少等等…我应该为其中的每一个都有一个call语句,我不知道如何从每个call语句中提取这些值…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我已经更新了,希望它现在对您有效。值通过return语句从函数返回,值作为参数传递给函数。通常,净工资是税后工资,总工资是税前工资,因此,如果税率中尚未考虑税收因素,则需要首先计算总工资,然后计算净工资。如果小时数>40,则regpay=常规(40,费率)多付=加班(小时-40,费率),否则regpay=常规(小时,费率)结束,如果抛出语法错误“常规(小时、费率)“不返回任何值…而且,之后,我需要能够显示毛工资是多少,净工资是多少等等…我应该为其中的每一个都有一个call语句,我对如何从每个call语句中提取这些值感到困惑…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我希望它现在对你有用。值通过return语句从函数返回,值作为参数传递给函数。通常,净工资是税后工资,总工资是税前工资,因此,如果税率中尚未考虑税收因素,则需要首先计算总工资,然后计算净工资。如果小时数>40,则regpay=常规(40,费率)多付=加班(小时-40,费率),否则regpay=常规(小时,费率)结束,如果抛出语法错误“常规(小时、费率)“不返回任何值…而且,之后,我需要能够显示毛工资是多少,净工资是多少等等…我应该为其中的每一个都有一个call语句,我对如何从每个call语句中提取这些值感到困惑…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我希望它现在对你有用。值通过return语句从函数返回,值作为参数传递给函数。通常,净工资是税后工资,总工资是税前工资,因此,如果税率中尚未考虑税收因素,则需要首先计算总工资,然后计算净工资。如果小时数>40,则regpay=常规(40,费率)多付=加班(小时-40,费率),否则regpay=常规(小时,费率)结束,如果抛出语法错误“常规(小时、费率)“不返回任何值…而且,之后,我需要能够显示毛工资是多少,净工资是多少等等…我应该为其中的每一个都有一个call语句,我对如何从每个call语句中提取这些值感到困惑…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我希望它现在对你有用。值通过return语句从函数返回,值作为参数传递给函数。通常,净薪酬是税后薪酬,总薪酬是税前薪酬,因此,如果税率中尚未考虑税收因素,则需要首先计算总薪酬,然后计算净薪酬。