C#如何向覆盖另一个接口的接口添加默认实现

问题描述

例如:

interface IDottable : IGetDottable
{
    bool try_dot_operator(string name);
    // ... more methods
    IDottable Dottable => this;
}
interface IGetDottable
{
    IDottable Dottable {get;}
}

它给了我:

"'IDottable.Dottable' hides inherited member 'IGetDottable.Dottable'. Use the new keyword if hiding was intended.".

解决方法

试试这个:

interface IDottable : IGetDottable
{
     bool try_dot_operator(string name);
     // ... more methods
     IDottable IGetDottable.Dottable => this;
}
interface IGetDottable
{
    IDottable Dottable {get;}
}

接口中的默认实现不会使方法公开。