Csharp/C#教程:C#枚举中的空格分享


C#枚举中的空格

有没有办法在C#枚举常量中放置空格? 我已经读过你可以通过这样做在VB中做到这一点:

Public Enum EnumWithSpaces ConstantWithoutSpaces [Constant With Spaces] End Enum 

…然后像这样访问它:

 Public Sub UsingEnumWithSpaces() Dim foo As EnumWithSpaces = EnumWithSpaces.[Constant With Spaces] End Sub 

这意味着CLR可以处理带空格的枚举。

有没有办法在C#中做到这一点?

这篇博文可能对您有所帮助:

https://blog.spontaneouspublicity.com/2008/01/17/associating-strings-with-enums-in-c/

来自文章:

但是枚举在C#中不能有空格!“你说。好吧,我喜欢使用System.ComponentModel.DescriptionAttribute为枚举值添加更友好的描述。示例枚举可以像这样重写:

 public enum States { California, [Description("New Mexico")] NewMexico, [Description("New York")] NewYork, [Description("South Carolina")] SouthCarolina, Tennessee, Washington } 

请注意,我没有对该项目的ToString()版本显示正常的项目进行描述。

CLR可以处理标识符中的任何字符。 但是,C#将标识符字符限制为CLS下的合法字符,而空间不是。 顺便说一句,VB.NET也是如此 – 方括号内的空格曾用于VB6,但它们不适用于VB.NET。

如果您正在使用Visual C#3.0或更高版本,我发现只需扩展枚举类并使用正则表达式插入必要的空格:

 public static class EnumExtension { public static String ToDisplayString(this Enum e) { Regex regex = new Regex(@"([^^])([AZ][az$])"); return regex.Replace(e.ToString(), new MatchEvaluator(m => { return String.Format("{0} {1}", m.Groups[1].Value, m.Groups[2].Value); })); } } 

请注意,这允许您按原样使用任何枚举,而无需向每个值添加说明。

上述就是C#学习教程:C#枚举中的空格分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 String enumWithSpaces = MessageBoxButtons.OKCancel.ToDisplayString(); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/996696.html

(0)
上一篇 2021年12月25日
下一篇 2021年12月25日

精彩推荐