为了账号安全,请及时绑定邮箱和手机立即绑定

在C#中,变量名前面的@符号是什么意思?

在C#中,变量名前面的@符号是什么意思?

C#
郎朗坤 2019-07-08 17:29:21
在C#中,变量名前面的@符号是什么意思?我理解@符号可以在字符串文字之前使用,以改变编译器解析字符串的方式。但是,当变量名以@符号作为前缀时,这意味着什么呢?
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

@符号允许您使用保留字。例如:

int @class = 15;

在以下情况下,上述方法是有效的:

int class = 15;


查看完整回答
反对 回复 2019-07-08
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

@符号在C#中有两个用途:

首先,它允许您使用保留关键字作为如下变量:

int @int = 15;

第二个选项允许您指定字符串,而不必转义任何字符。例如,“\”字符是转义字符,因此通常需要这样做:

var myString = "c:\\myfolder\\myfile.txt"

或者你也可以这样做:

var myString = @"c:\myFolder\myfile.txt"


查看完整回答
反对 回复 2019-07-08
?
交互式爱情

TA贡献1712条经验 获得超3个赞

其他答案忘记的重要一点是,“@关键字”在CIL中被编译为“关键字”。

因此,如果您有一个框架,比如F#,它要求您定义一个具有一个名为“class”的属性的类,那么您实际上可以这样做。

不是那,那个在实践中很有用,但没有它会防止C#出现某种形式的语言互操作。

我通常看到它不是用于互操作,而是为了避免关键字限制(通常用于局部变量名称,这是效果)(

private void Foo(){
   int @this = 2;}

但我强烈反对!只需查找另一个名称,即使变量的“最佳”名称是保留名称之一。


查看完整回答
反对 回复 2019-07-08
  • 3 回答
  • 0 关注
  • 1565 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信