我正在按照本指南https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/default-interface-methods使用默认接口实现功能。我复制了一个在 interface 中定义默认实现的代码,IA
然后在 interface 中覆盖它IB
:
interface I0
{
void M() { Console.WriteLine("I0"); }
}
interface I1 : I0
{
override void M() { Console.WriteLine("I1"); }
}
但它给出了一个错误CS0106 The modifier 'override' is not valid for this item
和一个警告CS0108 'I1.M()' hides inherited member 'I0.M()'. Use the new keyword if hiding was intended
。TargetFramework
设置为net5.0
,LangVersion
是latest
. 为什么即使在官方文档中描述它也不起作用?