我正在尝试定义一个Enum
并添加在CSV或类似文件中使用的有效公共分隔符。然后,我将把它绑定到一个ComboBox
作为数据源,这样每当我在枚举定义中添加或删除时,我就不需要更改组合框中的任何内容。
问题是我如何使用字符串表示来定义枚举,比如:
public enum SeparatorChars{Comma = ",", Tab = "\t", Space = " "}
发布于 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();
}
发布于 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 " ";} }
}
发布于 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;
https://stackoverflow.com/questions/8588384
复制相似问题