@作为C#中成员名称的一部分的目的是什么?

Mik*_*ess 7 c# web-services

可能的重复:
在C#变量名前放置@是什么意思?
C#中变量名中@字符的用法/含义是什么?

你可以想象,谷歌搜索或Binging任何包含'@'的短语很难.

在创建新的Web服务时,导入的C#代理类的一个成员以@为前缀.例如:

plan.@event = new Insurance.Event();
Run Code Online (Sandbox Code Playgroud)

我假设它是Visual Studio解决与保留字的潜在冲突的方式,因为'event'是一个保留字.将Web服务接口中的属性更改为"event"之外的其他内容(即"healthevent")会从属性中删除@.这是正确的假设吗?

Bry*_*tts 8

是的,与C#关键字冲突的名称可以使用@字符进行转义.


Iul*_*ian 5

对,那是正确的.只要包含@作为前缀,就可以使用关键字作为标识符.

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/x53a06bb.aspx.


Jef*_*nal 2

你是对的。请参阅C# 关键字,第 2.4.2 节语言规范的标识符,或字符串(C# 参考)

从关键词主题来看:

关键字是预定义的保留标识符,对编译器具有特殊含义。它们不能用作程序中的标识符,除非它们包含 @ 作为前缀。例如,@if 是有效标识符,但 if 不是,因为 if 是关键字。