Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#关键字作为变量_C# - Fatal编程技术网

C#关键字作为变量

C#关键字作为变量,c#,C#,在VB.NET中,可以用括号括住变量名,并使用关键字作为变量名,如下所示: Dim [goto] As String = "" 有一个C#等价于这样做吗?是的,在它前面加一个@ string @string = ""; String @goto = ""; 在变量前面加上@符号 string @class = "fred"; @符号也可用于前缀非转义字符串文字: string a = "fred\"; \\ invalid string b = @"fred\"; \\ valid. t

在VB.NET中,可以用括号括住变量名,并使用关键字作为变量名,如下所示:

Dim [goto] As String = ""

有一个C#等价于这样做吗?

是的,在它前面加一个@

string @string = "";
String @goto = "";

在变量前面加上
@
符号

string @class = "fred";
@符号也可用于前缀非转义字符串文字:

string a = "fred\"; \\ invalid
string b = @"fred\"; \\ valid. the backslash is part of the literal 'fred\'
我经常使用后者,但认为使用
@
符号来命名变量很难看@

public IActionResult Submit(Guid? id, string type, string key, string @event)
{

}

这是baaad practice IMHO。变量名应该是描述性的@字符串不是描述性的。@Daneil:这可能是一种不好的做法,但这是一个非常好的答案。@prefix的目的是允许与其他.NET语言进行互操作,请参见divo:,与根据以前版本的C#编译的程序集的兼容性,因为新关键字总是被引入。@DrJokepu实际上没有添加新的保留关键字,只有上下文关键字。因此,像“var=15;”这样的声明在没有@的情况下是有效的。这似乎是有意为了避免向后兼容性问题。我正在寻找VB.NET的方法来实现这一点,而您刚刚回答了我的问题。谢谢