首頁 > 後端開發 > C++ > 如何從其描述屬性中取得枚舉值?

如何從其描述屬性中取得枚舉值?

Patricia Arquette
發布: 2025-01-21 21:28:10
原創
524 人瀏覽過

How Can I Get an Enum Value from its Description Attribute?

根據描述屬性取得枚舉值

前面我們介紹過一個擴充方法,用來取得枚舉關聯的Description屬性。現在,讓我們探索一個補充函數,允許我們根據其描述獲取枚舉。

為此,我們引入以下擴充方法:

<code class="language-csharp">public static class EnumEx
{
    public static T GetValueFromDescription<T>(string description) where T : Enum
    {
        foreach (var field in typeof(T).GetFields())
        {
            if (Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) is DescriptionAttribute attribute)
            {
                if (attribute.Description == description)
                    return (T)field.GetValue(null);
            }
            else
            {
                if (field.Name == description)
                    return (T)field.GetValue(null);
            }
        }

        throw new ArgumentException("未找到。", nameof(description));
        // 或返回 default(T);
    }
}</code>
登入後複製

使用方法:

此方法可以如下呼叫:

<code class="language-csharp">var panda = EnumEx.GetValueFromDescription<animal>("大熊猫");</code>
登入後複製

透過提供「大熊貓」描述,擴充方法將檢索對應的大熊貓枚舉值。

以上是如何從其描述屬性中取得枚舉值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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