【问题标题】:C# disable keyword functionalityC# 禁用关键字功能
【发布时间】:2015-09-09 08:50:38
【问题描述】:

在 C# 中有没有办法在代码中禁用关键字的功能?就我而言,我想将我的枚举项之一定义为 float 这显然让 Visual Studio 有点困惑 :)

public enum ValidationType
{
    email,
    number,
    float,
    range
}

【问题讨论】:

  • 您通常可以通过在关键字前面加上@ 来解决这个问题(例如@float
  • 枚举的命名约定是使用大写字母(Email、Number、Float、Range)
  • 如上,如果你使用正确的大写字母,这个问题就会消失。
  • 正如freedomn-m 上面所说的,如果你再看上面Dennis_E 的评论,那么问题就解决了

标签: c# enums keyword


【解决方案1】:

从技术上讲,你可以这样做:

public enum ValidationType
{
    email,
    number,
    @float, // note "@" before "float"
    range
}

然而,即使可能使用关键词作为序数标识符,它也不是一个良好的做法。在您的情况下,可能更好的解决方案是大写

public enum ValidationType
{
    Email,
    Number,
    Float, 
    Range
}

【讨论】:

    【解决方案2】:

    没有。 Keywords 是预定义的保留标识符,对编译器具有特殊含义。除非它们包含 @ 作为前缀,否则它们不能用作程序中的标识符。

    例如:

    • @if 是一个有效的标识符,但是
    • if 不是因为 if 是关键字。

    https://msdn.microsoft.com/en-us/library/x53a06bb.aspx

    【讨论】:

      【解决方案3】:

      您需要在保留关键字之前使用@,如下所示:

      public enum ValidationType
      {
          email,
          number,
          @float,
          range
      }
      

      【讨论】:

        【解决方案4】:

        您不需要禁用任何东西,只需在关键字名称前使用@ 向编译器发出信号即可:

        public enum ValidationType
        {
            email,
            number,
            @float,
            range
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多