首頁 > 後端開發 > C++ > C#枚舉可以從其他枚舉繼承嗎?

C#枚舉可以從其他枚舉繼承嗎?

DDD
發布: 2025-01-26 07:16:12
原創
611 人瀏覽過

Can C# Enums Inherit from Other Enums?

枚舉的“繼承”

在 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 節中明確定義:

  • 所有枚舉都必須派生自 System.Enum。
  • 由上所述,所有枚舉都是值類型,因此是密封的(不能被繼承)。

因此,在 C# 中不可能創建一個真正繼承另一個枚舉值的類或枚舉。

以上是C#枚舉可以從其他枚舉繼承嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板