[英]C# Interface implemented by empty abstract class
我可以留下一個實現接口為空的抽象類,並暗示接口中的所有方法/屬性都是我的類中的抽象。 看來我必須在抽象類中再次寫出來,但我真的想避免這種重復。
我的理由是我有幾個帶有不同訪問器的接口,一個是公共的,一個是內部的,我想把它們放在一起所以我有一個抽象類來實現它們,然后可以擴展它們。
public interface ISomePublicProperties {
int PropertyOne {get;}
}
internal interface ISomeInternalProperties {
int PropertyTwo {get;}
}
public abstract class SomeClass : ISomePublicProperties, ISomeInternalProperties {}
但編譯器抱怨SomeClass沒有實現接口方法ISomePublicProperties.PropertyOne和ISomeInternalProperties.PropertyTwo
無論如何在C#中(我知道Java允許這樣)我可以將抽象類留空實現接口嗎?
不。 在C#中,抽象類必須完全實現接口。 請注意,它可以使用抽象方法和抽象屬性來實現它。 關於C#的一件小事總是讓我煩惱。
唯一的方法是創建沒有實現的virtual
屬性。 然后在派生類中重寫它們。
public abstract class SomeClass : ISomePublicProperties, ISomeInternalProperties
{
public abstract int PropertyOne { get; }
internal abstract int PropertyTwo { get; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.