考虑以下代码:
public abstract class Test1
{
public object Data { get; set; }
}
public abstract class Test2<T> : Test1
{
public T Data { get; set; }
}
这将生成以下警告:
“Test2.Data”隐藏了继承的成员“Test1.Data”。如果打算隐藏,请使用 new 关键字。
为什么这只是一个警告,添加“new”关键字会产生什么影响?
根据我的测试,一旦添加了“new”关键字,我就找不到任何区别。
不要误会我的意思,我完全是为了明确,但我很好奇添加“新”的好处。
我对它可能是什么的唯一想法是:
- 提高人类可读性
- 当编译器没有离开很长的路要解决不可避免的问题时,可以在运行时节省一些