如果我们不能在接口中使用访问保护修饰符有哪些选项?

时间:2018-02-27 05:43:28

标签: c#

正如标题所说:如果我们不能在界面中使用访问保护修饰符那么我们可以在c#中使用什么?

找到的唯一答案是使用抽象类?

1 个答案:

答案 0 :(得分:1)

接口不允许成员访问修饰符,但接口本身可以具有对常规类有效的任何访问修饰符。与显式实现的接口结合使用,在某种程度上允许成员级访问修饰符。请考虑以下代码:

internal interface IFoo
{
    void Frob();
}

public interface IBar
{
    void Blah();
}

public class Foo : IFoo, IBar 
{
    void IFoo.Frob() { }
    public void Blah() { }
}

你基本上具有假设的道德等同物:

public interface IFooBar
{
    public void Blah();
    internal void Frob();
}

虽然 是真的,但是无法明确地实现Frob这一事实,至少就像今天的c#一样。