C# var 赋值false 居然if执行,请教为什么?
var exist = false;
if (exist)
{
//...ifblock
}
上面这段代码,为什么代码会进入if块? 如果改为bool 怎不会进入if块。
bool exist = false;
if (exist)
{
//...ifblock
}
请高手明示!谢谢!
------解决方案--------------------var exist = false;
if (exist)
{
//...ifblock
}
这样可以进入if语句里面?那三观尽毁了
是不是前面加了个!?
------解决方案--------------------这是不可能的,var exist = false;等同于bool exist = false;,根据MSDN的定义:
从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:
var i = 10; // implicitly typed
int i = 10; //explicitly typed
因此var exist = false肯定等同于bool exist = false,应该是你看错了吧。
------解决方案--------------------直接上图证明楼主说的事情不可能发生
------解决方案--------------------LZ你重新生成一下项目!
------解决方案--------------------估计是中间var的值被修改过