我试图在if语句中检查以下条件。 但是,即使条件满足,if语句下的代码也不会执行。条件得到满足,但if语句下的代码不会执行
If (Gnum(0, 0) = Rnum(0, 0) & Gnum(0, 1) = Rnum(0, 1) & Gnum(0, 2) = Rnum(0, 2)) Then
Lbl_Msg.Text = "Send Msg"
End If
我试图在if语句中检查以下条件。 但是,即使条件满足,if语句下的代码也不会执行。条件得到满足,但if语句下的代码不会执行
If (Gnum(0, 0) = Rnum(0, 0) & Gnum(0, 1) = Rnum(0, 1) & Gnum(0, 2) = Rnum(0, 2)) Then
Lbl_Msg.Text = "Send Msg"
End If
我不能肯定,如果“&”这里的意图“&”是串联在vb.net
尝试使用“和”,而不是将工作。
编辑:什么vb.net认为你在这里试图做的是连接所有这些变量,并检查结果是否等于真(它不会是)。这就是为什么if语句中的代码没有被执行,也没有显示错误。
WoW,这是问题所在。感谢DUDE –
想必您要做AND
检查。取而代之的&
,请尝试使用AndAlso
If (Gnum(0, 0) = Rnum(0, 0) AndAlso Gnum(0, 1) = Rnum(0, 1) AndAlso Gnum(0, 2) = Rnum(0, 2)) Then
Lbl_Msg.Text = "Send Msg"
end if
&
是用来连接字符串在VB.NET。
是的,我想要做的检查,“和”和“andalso”之间的区别是什么? –
'和'评估双方,而'AndAlso'只评估右手边,如果左手边是真的。因此,'AndAlso'应该更快(虽然实际表现可能不明显,取决于你在做什么)。如果你熟悉C#,'AndAlso'就等于'&&'。这里更详细的信息http://stackoverflow.com/questions/302047/what-is-the-difference-between-and-and-andalso-in-vb-net – keyboardP
>>虽然现实生活中的表现可能不明显取决于关于你在做什么<< 如果右侧比左侧更“昂贵”,这是有区别的。像'如果x = 0并且ExpensiveFunction(y)<3',并且/或者如果左侧很少评估为'true' – igrimpe
If (Gnum(0, 0) = Rnum(0, 0) AND Gnum(0, 1) = Rnum(0, 1) AND Gnum(0, 2) = Rnum(0, 2)) Then
Lbl_Msg.Text = "Send Msg"
Else
Lbl_Msg.Text = "see if this text is written to confirm if your if is true"
End If
这不会给出比已经提供的两个答案更多的东西 –
我不是VB专家,只是一般说明: 检查运算符用法'=','&'及其优先级。 (0,0)= Rnum(0,0)&Gnum(0,1)= Rnum(0,1)'被评估为'Gnum(0,0)=( Rnum(0,0)&Gnum(0,1))= Rnum(0,1)'Ie中间'&'会先评估 –
@ GermannArlington:你是不是指“&”运算符?我不认为在这里使用“=”是没有问题的;-) –
@ Meta-Knight是的,我只注意到'&'在VB中不是一个逻辑运算符... –