如何给出有空间的枚举值

时间:2010-03-03 10:09:49

标签: c# .net

我必须创建一个包含空格值的枚举

public enum MyEnum
        {
            My cart,
            Selected items,
            Bill            
        }

这是错误的。使用MyCart或使用下划线My_Cart等连接词不是一种选择。请指导。

提前致谢。

5 个答案:

答案 0 :(得分:4)

enum (C# Reference)

  

枚举器可能不包含白色   名称中的空格。

答案 1 :(得分:2)

Enum只是没有空间! 你需要什么?如果你只是为了显示目的而需要它,你可以坚持使用下划线并为你的枚举编写扩展方法,这样你就可以通过这样做来请求显示文本(假设你的ext方法是调用DisplayText)。在内部,您只需实现DisplayText方法,将“_”替换为空格

MyEnum.My_Cart.DisplayText();   // which return "My Cart"

答案 2 :(得分:1)

根据C#规范,“枚举器名称中可能不包含空格。”  (见http://msdn.microsoft.com/en-us/library/sbbt4032.aspx) 你为什么需要这个?

答案 3 :(得分:1)

**

  

枚举在C#中不能有空格!"你说。这是方法   System.ComponentModel.DescriptionAttribute添加更友好   枚举值的描述​​。示例枚举可以重写为   **

public enum DispatchTypes
    {
        Inspection = 1,
        LocalSale = 2,[Description("Local Sale")]
        ReProcessing=3,[Description("Re-Processing")]
        Shipment=4,
        Transfer=5
    }

因此它返回" LocalSale"或者"重新处理",当我们使用.ToString()

答案 4 :(得分:-2)

如果您遵循惯例,我同意使用DisplayText。但是如果你需要不同的显示值来表示枚举常量,那么你可以让一个构造函数传递该值。

public enum MyEnum {     我的购物车(“购物车”),     所选项目(“所有选定项目”),     法案( “支付”);

private String displayValue; 
private MyEnum(String displayValue) {

this.displayValue = displayValue;     }
    public String displayText(){      return this.displayValue;     }

}

您可以使用displayText方法或toString方法返回displayValue