【问题标题】:Can I extend a C# Enum so I can get its value formatted in more than one way?我可以扩展一个 C# 枚举,以便我可以以多种方式格式化它的值吗?
【发布时间】:2012-10-23 06:03:11
【问题描述】:

我有以下枚举:

public enum ContentKey {
    Menu = 0,
    Article = 1,
    Topic = 2
};

当我使用 Enum 时,我一直在做以下事情:

((int)ContentKey.Topic).ToString("D2")

有没有什么方法可以为 Enum 创建一个扩展,这样我就不必编写上面的代码了?

【问题讨论】:

  • 您的表达式无法编译,所以这不是您“一直在做”的事情。您能否举一个可编译的示例说明您“一直在做什么”,或者仅描述您试图获得的结果?
  • 嗨达米安。代码如下: var pk = "00" + ((int) ContentKey.Topic.ToString("D2")) + "000";它编译对我来说没问题。
  • 真的吗? - 因为当我将其复制并粘贴到新的控制台应用程序中时,出现错误“无法将类型 string 转换为 int”。
  • 非常抱歉。你是对的。应该是 o((int)ContentKey.Topic).ToString("D2") 感谢您的建议。我复制粘贴了错误的代码

标签: c# enums extension-methods


【解决方案1】:

你可以使用扩展方法:

public static class Ext
{
    public static string ToFormattedString(this ContentKey key, string format)
    {
        //do staff
    }
}

用法:

ContentKey.Topic.ToFormattedString("D2")

【讨论】:

    猜你喜欢
    • 2017-08-05
    • 1970-01-01
    • 2014-10-02
    • 2014-11-08
    • 2015-07-05
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多