//出错
if (Page.Request.Cookies["userName"]!=null || Page.Request.Cookies["userName"].Value!="")
{
// do anything...
}
//出错
if ( Page.Request.Cookies["userName"].Value!="" && Page.Request.Cookies["userName"]!=null )
{
// do anything...
}
//运行正常
if (Page.Request.Cookies["userName"]!=null && Page.Request.Cookies["userName"].Value!="")
{
// do anything...
}
说明了几个问题:
if (Page.Request.Cookies["userName"]!=null || Page.Request.Cookies["userName"].Value!="")
{
// do anything...
}
//出错
if ( Page.Request.Cookies["userName"].Value!="" && Page.Request.Cookies["userName"]!=null )
{
// do anything...
}
//运行正常
if (Page.Request.Cookies["userName"]!=null && Page.Request.Cookies["userName"].Value!="")
{
// do anything...
}
说明了几个问题:
- 在进行if 语句时,运行时是左往右进行判断的。因为使用 &&(并且),那当有一个条件为False 时,系统会进行跳转,所以下面一个判断就不会被执行。也就不会出错了。
- 如果把 &&(并) 改为 || (或),那运行时就会判断每一个条件。
- 可以放心地使用一开始那样的语法了。(还是不够放心,那就用两个IF语句吧 :))
- 就是 ildasm.exe (它可以让你看到系统生成的中间代码) 太有用了。希望你能多用它。呵呵:) 一般会在 X:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin 目录中找到 (X 为你的安装VS.net 安装盘符)