是否可以在C#中使用关键字值定义枚举?
我有一些正在读取的客户机数据,并且我已经为其中一个值定义了一个枚举,所以我可以使用Enum.Parse(type,somestring) 问题是他们只是增加了一个新的价值:“公共”。是否可以定义同时也是保留字的枚举值 即:是否可以在C#中使用关键字值定义枚举?,c#,enums,C#,Enums,我有一些正在读取的客户机数据,并且我已经为其中一个值定义了一个枚举,所以我可以使用Enum.Parse(type,somestring) 问题是他们只是增加了一个新的价值:“公共”。是否可以定义同时也是保留字的枚举值 即: 如果不是,我想我将编写一个解析方法。如果将public大写为public,它将不会被识别为关键字。关键字区分大小写 然而,作为一般实践,使用关键字名称(即使它们大小写不同)是个坏主意,因为如果不小心用关键字代替标识符,可能会导致混淆,甚至是细微的缺陷 也可以在某些上下文(如变
如果不是,我想我将编写一个解析方法。如果将
public
大写为public
,它将不会被识别为关键字。关键字区分大小写
然而,作为一般实践,使用关键字名称(即使它们大小写不同)是个坏主意,因为如果不小心用关键字代替标识符,可能会导致混淆,甚至是细微的缺陷
也可以在某些上下文(如变量或成员声明)中使用@
,将保留字用作非关键字。然而,这不是一种常见的做法,当你不能使用不同的名称时,它应该只是最后的手段
因此,在本例中,您还可以使用@public
将保留字用作枚举标识符
如果选择使用
@
,请注意,该符号仅在源代码中用于区分标识符和保留字。对于外部世界(以及在像Enum.Parse()
这样的方法中),枚举值的名称只是public
您可以在变量名前面加上一个@
。这允许您使用关键字作为变量名-so@public
看
从:
前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时非常有用。字符@实际上不是标识符的一部分,因此该标识符在其他语言中可能被视为普通标识符,没有前缀。带有@前缀的标识符称为逐字标识符。允许对非关键字的标识符使用@前缀,但强烈反对使用@前缀作为样式
是,在名称前面加@。i、 e.
@public
但是这样做并不是一个好主意。相反,请向枚举中添加更多信息:
在VB.Net中,PublicAccess等使用方括号[…]将关键字描述为标识符。 例如:
对于VB.NET,请执行以下操作:
Public Enum MyEnum As Integer
Disabled = 0
[New] = 1
[Public] = 2
Super = 4
[Error] = 5
End Enum
你的意思是prepend,而不是append。我知道这一点,但我无法控制客户端选择“public”作为其所需值的事实。Parse有一个标志,允许您指定不区分大小写,但在我的情况下,这也会很不方便(尽管不是show-stopper)由于我使用的帮助器类,必须指定它。当您使用
@public
时,@
符号仅在代码中用于区分标识符和保留字。对于外部世界(包括像Enum.Parse()
这样的方法),您应该只使用public
。我意识到这一点,但我无法控制客户机选择“public”作为他们想要的值这一事实。
Public Sub Test(ByVal [public] As String)
MessageBox.Show("Test string: " & [public])
End Sub
Public Enum MyEnum As Integer
Disabled = 0
[New] = 1
[Public] = 2
Super = 4
[Error] = 5
End Enum