boolean VB表达式为整数1返回false

时间:2011-01-17 19:34:59

标签: vb.net

这可能是一个非常基本的(没有双关语)问题,但我似乎无法在任何地方找到答案。为什么func1的结果返回False而func2返回True?在我完成的每个其他测试中,整数1转换为布尔值true,0转换为false。如果我只是将rtnValue设置为1或0,则工作正常。

Public Function func1() As Boolean
    Dim rtnValue As Integer = 0
    Return rtnValue = 1

End Function


Public Function func2() As Boolean
    Dim rtnValue As Integer = 0
    Return rtnValue = 0

End Function

3 个答案:

答案 0 :(得分:1)

我相信你在“Return rtnValue = 1”中所做的事实上是在比较rtnValue是否等于1,而不是将rtnValue设置为1然后返回rtnValue。

答案 1 :(得分:1)

你危险地混淆了类型。在VB中,整数1是整数1,而不是布尔值true。对于整数0和布尔值false也是如此。

另外,你的func1()正在检查rtnValue是否等于1.如果是,那么你的函数返回true。如果不是,则返回false。在您的情况下,将rtnValue设置为0,并且由于0不等于1,它将返回false。

你的func2()返回true,因为rtnValue等于0,这就是你正在测试的。

答案 2 :(得分:0)

您正在重新调整表达式检查。因此,true时会报告为Return rtnValue = 0,因为rtnValue确实是0

相关问题