C#接口由空抽象类实现

kev*_*vin 11 c# interface abstract

我可以留下一个实现接口为空的抽象类,并暗示接口中的所有方法/属性都是我的类中的抽象.看来我必须在抽象类中再次写出来,但我真的想避免这种重复.

我的理由是我有几个带有不同访问器的接口,一个是公共的,一个是内部的,我想把它们放在一起所以我有一个抽象类来实现它们,然后可以扩展它们.

public interface ISomePublicProperties {
    int PropertyOne {get;}
}

internal interface ISomeInternalProperties {
    int PropertyTwo {get;}
}

public abstract class SomeClass : ISomePublicProperties, ISomeInternalProperties {}
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨SomeClass没有实现接口方法ISomePublicProperties.PropertyOne和ISomeInternalProperties.PropertyTwo

无论如何在C#中(我知道Java允许这样)我可以将抽象类留空实现接口吗?

Mat*_*eer 15

不.在C#中,抽象类必须完全实现接口.请注意,它可以使用抽象方法和抽象属性实现它.关于C#的一件小事总是让我烦恼.