大家使用C#的时候会不会有这样的迷惑,当自己定义一个相同的成员时,
容易出现二义性,咋做?
基类和子类出现一个相同定义的成员,例如:
public Class A
{ public int Count=1;}
public Class B:A
{ public int Count=2;}
如果你运行的话,会出现报错,存在二义性,
为什么会出现这种情况呢?
答:因为当A这个类在编译的时候,count绑定到B这个类在编译的时候,count绑定到B上。
解决方案:
public Class A
{ public int Count=1;}
public Class B:A
{ public new int Count=2;}
原理:如果出现两义性时,就需要隐藏其成员,使用new修饰符,new修饰符仅仅用于阻止编译器发出警告,同时告诉其他开发者,这个成员是有意义的。
特别提醒:new修饰符和new运算符是不同的