Cur*_*urt 0 vb.net asp.net iif-function if-statement asp.net-3.5
以下作品:
If 1=1
rdoYes.checked = True
Else
rdoNo.checked = True
End If
Run Code Online (Sandbox Code Playgroud)
但是,以下不起作用:
IIF(1=1, rdoYes.checked = True, rdoNo.checked = True)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
谢谢!
它确实"有效"; 它只是没有做你想要的.
IIf在VB.NET是一个函数(不使用它,永远,顺便说一句),这需要这些参数:
Boolean要检查的条件Object返回如果条件TrueObject如果条件是,则返回不同的False在您的使用中,您的情况是1 = 1; 那么你的其他两个参数是rdoYes.Checked = True和rdoNo.Checked = True,无论Boolean从VB编译器的角度表达式(所以,真的,他们等同于简单的rdoYes.Checked和rdoNo.Checked).
请记住,在VB.NET中,=符号只是一个赋值,如果它在它自己的行上.这就是编译器如何区分诸如x = 5和之类的语句If x = 5 Then.
这与你的问题没有直接关系,但是你也应该知道这个问题IIf已被弃用,而你几乎总是喜欢这样做If:
' Let us just suppose it made sense to write this: '
' Notice the If instead of IIf. '
Dim result = If(1 = 1, rdoYes.Checked, rdoNo.Checked)
Run Code Online (Sandbox Code Playgroud)