C# var 赋值false 居然if执行,请教为什么? C# var bug if 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var exist = false;if (exist){ //...ifblock}这样可以进入if语句里面?那三观尽毁了是不是前面加了个!? 这是不可能的,var exist = false;等同于bool exist = false;,根据MSDN的定义:从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:var i = 10; // implicitly typedint i = 10; //explicitly typed因此var exist = false肯定等同于bool exist = false,应该是你看错了吧。 实践证明你是错误的,var 的并不会进入if js对象定义是以var开始的···bool exist<=>var exist 从 Visual C# 3.0 开始,增加了隐式类型var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。var exist=false;//等效于bool exist=false; 我的程序,所有用到var的地方,只有那一个地方会出现这样的问题,其他地方同样的写法都没有问题。算了,不研究了。 我直接把 var 换成 bool了。 bool exist = false; { if (exist) { throw new PmExistException(ArgTextNames.Role); } }把var换成bool也是出现 上面相同问题。最后解决方法:如上面代码所示,就没问题呃,不清楚什么问题,不研究了。 exist 将这个变量名 换一个! 据真实案例,这种情况确实发生了。想尽办法调试,最后解决方法:关掉vs,重新启动。vs就是这么任性! datagridview和sql存储图片问题 C#中如何用WINFORM程序进行TXT文档的某一行的删除或更改操作 如何销毁自己动态创建picturebox控件 使用 XmlReader 读取xml时,如何复位(从头重新读)? C# 有没有把字符串转换成语句的方法? 想用c#写一个改变桌面图标视图的小程序 如何用EventLog类,把一些日志信息写到指定目录下的指定文件中去,高手请指教? 诺顿2004查到.NET一个病毒devenv.exe,怎么回事? [求助]DES算法中对中文加密然后再解密后的乱码问题 SQL count() 串口通信问题 为什么我的vs2008 ,没 智能设备 这个模板
if (exist)
{
//...ifblock
}
这样可以进入if语句里面?那三观尽毁了
是不是前面加了个!?
从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:
var i = 10; // implicitly typed
int i = 10; //explicitly typed因此var exist = false肯定等同于bool exist = false,应该是你看错了吧。
实践证明你是错误的,var 的并不会进入if
var exist=false;//等效于bool exist=false;
算了,不研究了。 我直接把 var 换成 bool了。
if (exist)
{
throw new PmExistException(ArgTextNames.Role);
}
}
把var换成bool也是出现 上面相同问题。最后解决方法:如上面代码所示,就没问题呃,不清楚什么问题,不研究了。