C#的Bug?
using System;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
if (false)
{
int i = 1;
}
int i = 2;
System.Console.WriteLine(i.ToString());
}
}
}
================
上面代码有错误吗?我的VS.net 2005 SP1编译不了。
用Java测试:
if (false)
{
int i = 1;
}
int i = 2;
是完全没问题的。为什么C#有这个鬼问题?
PS:我的VS.net2005 SP1是盗版的,麻烦哪位用正版的朋友试下!
------解决方案--------------------C#不支持这么写
类似
if(1)是编译不过的
------解决方案--------------------C#不支持这么写
类似
if(1)是编译不过的
==================
瞎说
人家是if(false)
i变量的问题
------解决方案--------------------果然是瞎说了-_-#
这个咋解决呢
------解决方案-------------------- if (false)
{
int i = 1;//这里已定义了一次
}
int i = 2;.//这里又定义了一次,
为了避免在使用的上的不方便,C#编译器不允许这样在定义两次变量.因为它们的做用域相近.