枚舉的“繼承”
在 C# 中,枚舉不能繼承自其他枚舉。這是由於 CLI 中枚舉的實現方式,所有枚舉都必須派生自 System.Enum 基類。
看起來像繼承自另一個枚舉的枚舉語法,實際上是對枚舉底層值的表示方式改變,而不是真正的繼承。例如:
<code class="language-c#">namespace low { public enum Base { X, Y, Z } } namespace mid { public enum Consume : Base { // 隐式继承 Base 的值 } }</code>
這種語法可能會產生誤導,因為它暗示 Consume 繼承自 Base。然而,實際上,Consume 仍然是一個單獨的枚舉,它繼承自 System.Enum。
這種行為在 CLI 規範的 8.5.2 節中明確定義:
因此,在 C# 中不可能創建一個真正繼承另一個枚舉值的類或枚舉。
以上是C#枚舉可以從其他枚舉繼承嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!