如何使用父类的成员来满足C#中的接口?

1 .net c# oop

我有以下情况:

public interface IStuffer
{
    public string Foo { get; }
}

public class BaseClass
{
    public static string Foo { get { ... } }
}

public class MyClass : BaseClass, IStuffer
{
}
Run Code Online (Sandbox Code Playgroud)

这不会构建,因为MyClass需要一个Foo成员.如何使用BaseClass的Foo实现来满足MyClass对Foo的要求?

Red*_*dog 11

这是因为Foo是BaseClass的静态成员.只需带走静态关键字!

public class BaseClass
{
    public string Foo { get { ... } }
}
Run Code Online (Sandbox Code Playgroud)

编辑:否则如果你真的希望它保持静态,你可以使用一个显式的实现

public class MyClass : BaseClass, IStuffer
{
    string IStuffer.Foo { get { return BaseClass.Foo; } }
}
Run Code Online (Sandbox Code Playgroud)

  • +1通常,静态成员无法满足接口. (4认同)