如何给出具有空间的枚举值

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

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

这是错误的。 使用像MyCart这样的MyCart或使用下划线My_Cart不是一个选项。 请指导。

提前致谢。

来自enum(C#参考)

枚举器名称中不能包含空格。

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

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

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

**

枚举在C#中没有空格!“你说。这是System.ComponentModel.DescriptionAttribute向枚举值添加更友好描述的方式。示例枚举可以像**一样重写

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

因此,当我们使用.ToString()时,它返回“LocalSale”或“ReProcessing”

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

public enum MyEnum {My cart(“Cart”),Selected items(“All Selected Items”),Bill(“Payment”);

 private String displayValue; private MyEnum(String displayValue) { 

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

}

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