考虑以下代码:
public abstract class Test1
{
public object Data { get; set; }
}
public abstract class Test2<T> : Test1
{
public T Data { get; set; }
}
这将产生以下警告:
'Test2.Data' hides inherited member 'Test1.Data'. Use the new keyword if hiding was intended.
为什么这只是一个警告,添加“new”关键字会有什么影响?
根据我的测试,一旦添加了“new”关键字,我就找不到任何区别。
不要误会我的意思,我完全是为了直截了当,但我很好奇添加"new"的好处。
我唯一的想法是:
- 提高人类可读性
- 当编译器不用长时间解决不可避免的问题时,在运行时会节省一些时间
最佳答案
new
关键字的唯一作用是删除警告。在不使用 new
关键字时收到警告的目的是防止您在真正打算重写该方法时意外隐藏该方法。
关于c# - "new"关键字在 C# 中有什么作用,为什么它在不使用时只是一个警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254943/