可以将接口(interface)中的方法声明标记为“new”,但它是否具有任何“技术”意义,或者它只是一种明确声明声明不能覆盖先前声明的方式?
例如:
interface II1
{
new void F();
}
interface II2 : II1
{
new void F();
}
是有效的(C# 4.0 编译器不会报错)但似乎与 :
interface II1
{
void F();
}
interface II2 : II1
{
void F();
}
提前感谢您提供任何信息。
编辑:您知道隐藏在界面中会有用的场景吗?
编辑: 根据此链接:Is method hiding ever a good idea (感谢斯科特), 最常见的场景似乎是协变返回类型的仿真。
最佳答案
第二个示例发出以下编译器警告:
'II2.F()' hides inherited member 'II1.F()'. Use the new keyword if hiding was intended.
我会说使用 new
关键字的不同之处在于:显示意图。
关于c# - 隐藏(使用 "new"修饰符)接口(interface)方法声明的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476685/