VB.NET:
Function condition1() As Boolean
Response.Write("condition1")
Return False
End Function
Function condition2() As Boolean
Response.Write("condition2")
Return True
End Function
If condition1() And condition2() Then
Response.Write("success")
Else
Response.Write("fail")
End If
'结果:condition1 condition2 failC#:
private bool condition1()
{
Response.Write("condition1");
return false;
}
private bool condition2()
{
Response.Write("condition2");
return true;
}
if (condition1() && condition2())
Response.Write("success");
else
Response.Write("fail");
//结果:condition1 fail可见,当第一个条件为Flase时,VB.NET仍会再判断第二个条件,而C#则不理会第二个条件,直接返回结果。当第二条件依赖于第一个条件时,VB.NET语句结构得稍加修改,否则程序可能出错:
'当cookie不存在时,程序出错:未将对象引用设置到对象的实例。
If Not (Request.Cookies("url") Is Nothing) And Request.Cookies("url").Value = "www.mzwu.com" Then
'code ...
End If正确的写法:
If Not (Request.Cookies("url") Is Nothing) Then
If Request.Cookies("url").Value = "www.mzwu.com" Then
'code ...
End If
End IfC#则比较简洁:
if (Request.Cookies["url"] != null && Request.Cookies["url"].Value == "www.mzwu.com")
{
//code...
}VB.NET的Or和C#的||也有类似的结果,当第一个条件为True时,VB.NET仍会判断第二个条件,而C#则直接返回结果!
评论(0)
暂无评论。