我知道你不能在枚舉中使用繼承,所以在我的基類中,我想定義實現它的類必須爲屬性返回某種類型的枚舉。是否有一個C#枚舉的基礎對象?
理想的情況下,這將是這樣的:
public abstract BaseEnum MyEnum { get; set; }
然後所有的實施者將不得不回到某種形式枚舉。但顯然BaseEnum不存在。我可以使用對象,但我寧願不要。
有沒有這樣做的好方法?
編輯︰我這樣問,因爲我基本上想要在實現類中保留屬性的名稱相同 - 我知道我將無法使用基類中的枚舉,但是如果我沒有把它放在基礎中,那麼實現類可以爲它們的屬性名稱決定它們的枚舉類型,隨着時間的推移它們可能會變得不清楚,因爲它們會偏向它們自己的實現。
雖然枚舉繼承自「System.Enum」結構,但您無法真正使派生類更改返回類型。重寫的方法將不得不聲明它的返回類型'System.Enum'。 – 2010-01-14 08:53:28
我有興趣聽到這個問題的'爲什麼',繼承是不存在的枚舉,因爲它沒有任何意義:它們只是字節映射,所以不能真正互換? (例如,我不認爲ListItemType與DayOfWeek可以互換) – 2010-01-14 08:55:08
我認爲你的問題比技術更具社會性。您不需要在基類中指定它。只需在某處添加註釋並記錄應使用的樣式和屬性名稱。 – 2010-01-14 09:31:27