默认接口方法的 C# 8 提案显示了以下示例...
using static System.Console;
interface IA
{
void M()
{
WriteLine("IA.M");
}
}
interface IB : IA
{
override void IA.M() // The modifier 'override' is not valid for this item
{
WriteLine("IB.M");
}
}
interface IC : IA
{
override void IA.M() // The modifier 'override' is not valid for this item
{
WriteLine("IC.M");
}
}
class D : IA, IB, IC
{
void IA.M()
{
base(IB).M(); // Use of keyword 'base' is not valid in this context
}
}
...但它不能在最新版本的 Visual Studio 2019 (v16.4.5) 中编译。
这个功能怎么了?它只是尚未实施,还是决定放弃它?