簡體   English   中英

C#接口由空抽象類實現

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM