日期:2014-05-19  浏览次数:20918 次

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#编译器不允许这样在定义两次变量.因为它们的做用域相近.