首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何定义带有字符串值的枚举?

如何定义带有字符串值的枚举?
EN

Stack Overflow用户
提问于 2011-12-21 18:31:02
回答 15查看 477.5K关注 0票数 122

我正在尝试定义一个Enum并添加在CSV或类似文件中使用的有效公共分隔符。然后,我将把它绑定到一个ComboBox作为数据源,这样每当我在枚举定义中添加或删除时,我就不需要更改组合框中的任何内容。

问题是我如何使用字符串表示来定义枚举,比如:

public enum SeparatorChars{Comma = ",", Tab = "\t", Space = " "}

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2011-12-21 18:33:42

你不能-枚举值必须是整数值。您可以使用属性将字符串值与每个枚举值相关联,或者在本例中,如果每个分隔符都是单个字符,则可以只使用char值:

enum Separator
{
    Comma = ',',
    Tab = '\t',
    Space = ' '
}

(编辑:为了清楚起见,您不能将char设置为枚举的底层类型,但可以使用char常量为每个枚举值分配整数值。上述枚举的底层类型是int。)

如果你需要一个扩展方法:

public string ToSeparatorString(this Separator separator)
{
    // TODO: validation
    return ((char) separator).ToString();
}
票数 132
EN

Stack Overflow用户

发布于 2011-12-21 18:33:30

据我所知,您不允许将字符串值分配给枚举。你能做的就是创建一个包含字符串常量的类。

public static class SeparatorChars
{
    public static String Comma { get { return ",";} } 
    public static String Tab { get { return "\t,";} } 
    public static String Space { get { return " ";} } 
}
票数 97
EN

Stack Overflow用户

发布于 2016-05-24 03:54:13

对于字符串值的简单枚举(或任何其他类型):

public static class MyEnumClass
{
    public const string 
        MyValue1 = "My value 1",
        MyValue2 = "My value 2";
}

用法:string MyValue = MyEnumClass.MyValue1;

票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8588384

复制
相关文章

相似问题

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