使用xsd.exe我有一个枚举,其中一个元素前面有一个@符号。我无法理解为什么,我无法弄清楚它的用途或含义。在Google上搜索符号的效率并不高。
原始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似乎很满意)
感谢。
答案 0 :(得分:5)
它从C#转义default
关键字。
请参阅此问题:What's the use/meaning of the @ character in variable names in C#?
答案 1 :(得分:1)
这是因为枚举值名称(默认值)是保留字。在C#中,保留字必须附加@
,以便编译器知道如何解释它们。
您会看到与“event”或“public”等名称相同的行为。
答案 2 :(得分:1)
default是一个C#关键字。
@
符号用作转义语言关键字的方法,以便它们可以用作变量名称和其他标识符。
答案 3 :(得分:0)
http://dotnetdud.blogspot.com/2008/12/how-to-use-reserved-words-in-net-c.html
“@”语法允许您使用保留的语言单词作为变量/成员名称。在大多数情况下,我认为这种做法很糟糕。