首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么方法可以避免在使用枚举时添加System.ComponentModel名称空间吗?

有什么方法可以避免在使用枚举时添加System.ComponentModel名称空间吗?
EN

Stack Overflow用户
提问于 2013-03-01 21:44:58
回答 1查看 25关注 0票数 0

我有一个扩展方法,它允许我向枚举中添加一个Description属性。

典型的枚举如下所示:

代码语言:javascript
复制
public enum Legal
{
    [Description("INVALID!")]
    None = 0,
    [Description("general-terms")]
    General = 1,
    [Description("competition-terms")]
    Competition = 2,
    [Description("privacy-policy")]
    Privacy = 3,
    [Description("cookie-policy")]
    Cookies = 4
}

在使用枚举(并添加了它的名称空间)时,我仍然发现需要在使用System.ComponentModel名称空间的任何地方添加它。有什么办法可以解决这个问题吗?

下面是扩展方法:

代码语言:javascript
复制
    public static string Description(this Enum @this)
    {
        @this.ThrowNull("@this");

        var memInfo = @this.GetType().GetMember(@this.ToString());

        if (memInfo.IsNotNullOrEmpty())
        {
            var attribute = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

            if (attribute.IsNotNullOrEmpty())
                return ((DescriptionAttribute)attribute[0]).Description;
        }

        return null;
    }

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-03-01 21:59:05

如果需要使用description属性,则必须引用它的名称空间。但是,我很少使用该属性。从代码文档的角度来看,Simple intellisense (XML)注释可以很好地工作。

代码语言:javascript
复制
[Flags]
public enum PetTypes
{
    /// <summary>An option for cats!</summary>
    Cats = 1,

    /// <summary>An option for dogs!</summary>
    Dogs = 2

    /// <summary>Bill Murray style</summary>
    MassHysteria = 3
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15159247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档