public new string AddElementName
{
get
{
return base.AddElementName;
}
set
{
base.AddElementName = value;
}
}
“public new string”这里的那个new是什么意思呀,为什么要加这个new呢?加与不加有什么区别呀?
{
get
{
return base.AddElementName;
}
set
{
base.AddElementName = value;
}
}
“public new string”这里的那个new是什么意思呀,为什么要加这个new呢?加与不加有什么区别呀?
解决方案 »
- 【请问】C# 如何实现datagridview显示中只显示指定的有效位数,同时不丢失信息
- 如何计算船舶通过指定的航点?
- 连接oracle时配置的Data source的名字到底是哪一个?
- 酒店管理系统该怎么做???
- 如何将datareader装换为字符串数组
- DataGrid导入Excel,身份证号码变成3.20205E+14
- 今天看到两个要 ip box 的贴子,个人觉得 ip box 也不是很难的问题,就写了一个。
- 【【【200分】】】请教几个问题 如何使用C#执行一个EXE文件,帮顶有分哈
- 百分相赠!哪里有C#电子图书下载,最好PDF的。
- 线程锁的问题
- 感觉有点奇怪,CSDN怎么没设计模式版块?
- 引用程序集和using命名空间的问题
c:\inetpub\wwwroot\WebApplication1\WebForm1.aspx.cs(49): 成员“WebApplication1.WebForm1.AddElementName”未隐藏继承成员。不需要关键字 new。
详见MSDN:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_csref/html/a2e20856-33b9-4620-b535-a60dbce8349b.htm
public new string AddElementNameAddElementName,是当前派生类的一个 返回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属性实现,感觉是无病呻吟一般,
更贴切的比喻是:脱被子放屁-->多此一举以上,谨代表我个人观点,不知道说得对不对,接着听楼下的讲课了。