c# @在enum中从XSD生成类
本文关键字:XSD 中从 enum | 更新日期: 2023-09-27 18:07:11
使用xsd.exe我有一个枚举,其中一个元素前面有一个@符号。我不知道为什么,我也不知道这是为了什么或者是什么意思。在谷歌上搜索一个符号的效率并不高。
原始XSD片段:
<xs:simpleType name="stopLocation">
<xs:restriction base="xs:string">
<xs:enumeration value="default"/>
<xs:enumeration value="near"/>
<xs:enumeration value="far"/>
<xs:enumeration value="nearExact"/>
<xs:enumeration value="farExact"/>
</xs:restriction>
</xs:simpleType>
生成的类片段:
public enum stopLocation {
@default,
near,
far,
nearExact,
farExact,
}
(是的,最后一个元素有一个逗号,VS似乎很高兴)
谢谢。
转义c#中的default
关键字。
参见这个问题:c#中变量名中@字符的用途/意义是什么?
发生这种情况是因为枚举值名称(默认)是保留字。在c#中,保留字必须附加一个@
,以便编译器知道如何解释它们。
如果名称为'event'或'public',您将看到相同的行为
default是一个c#关键字。
@
符号用于转义语言关键字,以便它们可以用作变量名和其他标识符。
http://dotnetdud.blogspot.com/2008/12/how-to-use-reserved-words-in-net-c.html
"@"语法允许使用保留语言单词作为变量/成员名。在大多数情况下,我认为这是一种糟糕的做法。