gpt4 book ai didi

c# - 隐藏(使用 "new"修饰符)接口(interface)方法声明的目的是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:05:39 26 4
gpt4 key购买 nike

可以将接口(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com