class Class1
{
[STAThread]
static void Main(string[] args)
{
Class1 Class1=new Class1();
Class1.bb();
Class1.aa();
} public static void bb()
{}
public void aa()
{}
}这段代码没有错误 class Class1
{
[STAThread]
static void Main(string[] args)
{
Class1.bb();
Class1 aa=new Class1();
aa.aa();
} public static void bb()
{}
public void aa()
{}
}
但是这段有错误
什么原因
.NET里里面没有规定类名和实例名不能一样
{
[STAThread]
static void Main(string[] args)
{
Class1 Class1=new Class1();
Class1.bb();
Class1.aa();
} public static void bb()
{}
public void aa()
{}
}这段代码没有错误 class Class1
{
[STAThread]
static void Main(string[] args)
{
Class1.bb();
Class1 aa=new Class1();
aa.aa();
} public static void bb()
{}
public void aa()
{}
}
但是这段有错误
什么原因
.NET里里面没有规定类名和实例名不能一样
class Class1
{
[STAThread]
static void Main(string[] args)
{
Class1.bb();
Class1 Class1=new Class1();
Class1.aa();
} public static void bb()
{}
public void aa()
{}
}
Class1 Class1=new Class1();
Class1.bb();
Class1.aa();
Class1始终代表一个东西,就是类Class1的实例。所以不会出错。第二段
Class1.bb();
Class1 Class1=new Class1();
Class1.aa();
因为执行了第一句Class1.bb();这时Class1.bb()的Class1就已经代表静态方法bb()的所属类,然后再执行 Class1 Class1=new Class1(); 的时候第一个Class1依然没有错,因为它还是代表代表静态方法bb()的所属类,然后接下来的那个Class1就会出错,因为这个Class1代表的静态方法bb()的所属类的一个实例,这样就会使Class1含有不同的含义,出错!!最后想说一句是....你的老师好牛!!! -_-##
{
for(int i=0;i<8;++i) //这里就不能再用i,因为i具有二义性,下面不知道到底是哪个i
{
Console.WriteLine(i);
}
}在你的例子二中,Class1此时具有二义性,程序不知道指的是类名还是实例名,当然会错。北大青鸟水平远远不如一个大型软件企业,你们老师,如果不是唬人,就是白痴。
呵呵
只有北大青鸟的人才会这样写程序 Class1 Class1 = new Class1();连最简单二义性都没搞明白
估计你们老师常写:
int a = a; (C++下)
可以么,可以,有用么,无聊。
是不是牛人应该这样说,他是Microsoft MSN Spaces主要负责人、Microsoft Word产品经理、Google Desktop Search Engine技术骨干之类……