如果不按预期返回值

时间:2015-07-17 10:43:04

标签: vb.net

我使用简单的if语句,并希望将true或false检索为Boolean类型。我确实喜欢这个:

Iif(text = "something", Convert.ToBoolean(True), Convert.ToBoolean(False))

我也在尝试这个:

Iif(text = "something", True, False)

对于这两种情况,我都会收到错误,但我的表达肯定是正确的。我做错了什么?

4 个答案:

答案 0 :(得分:1)

使用If运算符。

    Dim someString As String = "something"
    Dim matchSomeString As Boolean = If(someString = "something", True, False)

答案 1 :(得分:1)

对于一个简单的布尔值,您可以直接使用比较结果

dim text as String = "something"
dim result as Boolean

result = (text ="something")

答案 2 :(得分:0)

AS由MSDN定义

  

IIF :根据表达式的评估,返回两个对象中的一个。

IIF函数有一个返回值,您需要将True或false部分存储到某个变量。

例如:

Dim _decision As Boolean  =IIf(text = "something", True, False);

然后转换为

Convert.ToBoolean(_decision );

答案 3 :(得分:0)

@Tushar Gupta(抱歉还不能发表评论,但我还是要回答)

你不需要转换你的价值i juste测试下面的代码并且它完全奏效(在运行结束时irt为4而不是2)

Dim irt = 2
Dim text As String = "abc"
Dim o = IIf(text = "abc", True, False)
If o Then irt = 4
End

所以我猜你没有存储你的返回值,或者你的文本值并不完全是你期望的值。

无论如何,如果你只需要真/假我不明白为什么你不使用简单的,如果谁会更快。