调用setMethod并不能改变布尔值VB

时间:2014-10-22 19:15:49

标签: vb.net visual-studio methods boolean

我有两个类,一个主类和一个用于计算某些数字的类。我正在使用单选按钮,我选择男性或女性 我有一个字段作为布尔值来跟踪是否选择了女性或男性。这个领域叫做女性 我想要做的是根据我选择的单选按钮调用从主类到计算的set方法,并根据我选择它计算一些男性和女性不同的值。 问题是以某种方式调用Main类中的set方法并不会更改计算类中的isFemale字段。 这是代码:

 If btnFemale.Checked = True Then

        bmrCalc.setGender(True)
        MessageBox.Show("Woman")
    ElseIf btnMale.Checked = True Then
        MessageBox.Show("Man")
        bmrCalc.setGender(False)
    End If

正如您所看到的,我已经包含了一些消息框,以确保无线电按钮工作正常。唯一的问题是 bmrCalc.setGender(boolean)。无论我选择哪个单选按钮,它都不会将布尔值从false更改为true,反之亦然。默认布尔值不能以某种方式改变。 bmrCalc 对象工作正常。我有其他设置方法作为双工作。但是这个布尔不会以某种方式工作..

这是我的领域:

  Private isFemale As Boolean in the calculation class

这是我的计算类中的setMethod:

Public Sub setGender(ByRef female As Boolean)
    isFemale = female
End Sub
  

问题的摘要:   在主类中调用set方法不会更改Calculating类实例字段中的布尔值

我希望你明白这个主意。我正在使用VB

1 个答案:

答案 0 :(得分:0)

我已经tried您的代码,它似乎正常运行。您确定在设置之后是否正确读取布尔值?尝试逐步调试代码和/或使用Watches。

正如戴夫所说,你可以使用枚举而不是布尔:

Private _gender As Gender

Public Sub setGender(ByRef gender As Gender)
    _gender = gender
End Sub

Public Enum Gender
    Male
    Female
End Enum

然后您可以将其设置为:

bmrCalc.setGender(BmrCalc.Gender.Male)  
bmrCalc.setGender(BmrCalc.Gender.Female)