C# 禁用关键字功能

C# disable keyword functionality

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

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

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

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

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

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

然而,即使可能使用关键字作为序号标识符,这也不是好的做法。在您的情况下,更好的解决方案可能是 capitalize:

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

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

例如:

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

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

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

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