|
发表于 2020-6-30 19:00:01
|
显示全部楼层
new,是用来改变一个方法或是一个属性,在其基类中所实现的行为的。
具体在楼主的程序片段中:
public new string AddElementName
AddElementName,是当前派生类的一个 返回string类型的 属性
这个属性是继承而来的,如果不想这个属性如其在基类中所定义
的那样实现,可以覆写这个属性:public string AddElementName
注意,上面是没有加new的,这样写没有问题,但是编译器会发出
警告(它担心你不小心覆写了基类的AddElementName属性),为了
不让编译器发出警告(也表明你的确是想覆写这个属性),你可以
加上new,就像这样:public new string AddElementName
如此,编译器就知道,你很清楚,是在覆写该属性,也就不会报警了。
在楼主的代码片段中:
public new string AddElementName
{
get
{
return base.AddElementName;
}
set
{
base.AddElementName = value;
}
}
该派生类明确覆写了基类的AddElementName属性,但从其实现来看,
却是直接调用的基类AddElementName属性实现,感觉是无病呻吟一般,
更贴切的比喻是:脱被子放屁-->多此一举
以上,谨代表我个人观点,不知道说得对不对,接着听楼下的讲课了。 |
|