我有两个类,一个主类和一个用于计算某些数字的类。我正在使用单选按钮,我选择男性或女性 我有一个字段作为布尔值来跟踪是否选择了女性或男性。这个领域叫做女性 我想要做的是根据我选择的单选按钮调用从主类到计算的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
答案 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)