簡體   English   中英

接口中的枚舉存根?

[英]Enum stubs in Interfaces?

我在這些接口所在的項目中的一個Enum.cs類中定義了一個枚舉。

我有一個名為IPhoto的接口,在其中需要放置一個稱為FileType的屬性,因為此服務中的其他方法都需要它,因此我希望任何實現IPhoto的類都具有此定義,以便他們知道。

這看起來不合適嗎,還是您不會做這樣的事情? 那我該如何定義呢?

我的意思是我不能僅僅這樣做:

MyEnum FileType;

關鍵是所有文件都有一個類型。 在我的具體課程中,我表示使用枚舉(例如jpeg等)。 因此,任何實現此目標的類都必須以某種方式肯定具有FileType屬性。

您可以將屬性添加到接口。 請參閱文檔

public interface ISampleInterface 
{    
    MyEnum FileType
    {
        get;
    }
}

現在,接口的所有實現都必須為該屬性定義一個吸氣劑。

我看不出有任何理由不這樣做,如果它是對象需要遵循的接口的一部分,如果要向接口添加只讀屬性,您可以這樣做:

public interface IPhoto
{
    MyEnum FileType
    {
        get;
    }
}

讀寫為:

public interface IPhoto
{
    MyEnum FileType
    {
        get;
        set;
    }
}

如果事先知道所有可能的文件類型,則可以使用枚舉。 當然,您只需為該枚舉類型添加屬性即可。

如果服務可以定義自己的文件類型,則必須使用一個類(然后可以將其子類化)。

你有嘗試過嗎?

public enum MyEnum { one, two, three }
public interface Bar { MyEnum Whatever { get; set; } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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