C# 中变量名前的@符号
本文解释了 C# 中变量名前的 @
符号的含义。
C#
中的@
符号是什么
对于一些 C# 开发人员来说,@
符号可能有些麻烦。很少有程序员已经编程了很长时间,但仍然对@
的作用有误解。
在与其他编程语言交互时,符号@
允许将关键字用作标识符。因为@
字符并不是真正的标识符的一部分,所以它可能被解释为其他语言的常规标识符。
逐字标识符是带有@
术语的标识符。 @
术语可用于非关键字标识符,但风格强烈不鼓励使用。
C#
中@
符号的意义
你可以通过使用@
符号来使用保留字。考虑以下场景。
int @class = 29;
下面的一个不适用于保留字的使用。
int class = 29;
如果要在字符串中插入反斜杠,则必须首先通过在其前面插入另一个反斜杠来对其进行转义。以下代码将字符串 "C:\\Program Files\\wmplayer.exe"
存储在字符串变量 filepath
中。
string filepath = "C:\\Program Files\\wmplayer.exe";
如果你必须输入大量带有反斜杠的字符串,这可能会令人沮丧。为了使事情更简单,你可以在字符串前面使用@
符号来生成忽略反斜杠作为转义字符的逐字字符串文字。
如果这样做,你将无法在字符串中插入特殊字符,例如换行符或制表符。下面的代码与前面的代码相同,只是它使用了字符串文字。
string filepath = @"C:\Program Files\wmplayer.exe";
这仅适用于你的代码,而不适用于用户在 TextBox
或 ComboBox
中键入的任何内容。由于没有转义,也没有与字符相关的特殊意义,用户输入的所有内容都成为控件的 Text
属性的一部分。
因为用户无法输入特殊字符,所以你不必担心在用户键入的任何内容中对转义字符的处理方式不同。换句话说,用户不能键入\t
来输入制表符。
C#
中使用 @
符号的示例
-
它确实意味着它允许你使用保留条款。
char @int = 'z';
而下面的一个将无法工作。
char int = 'z';
-
我们还看另外一个场景;
@
符号也用于定义带有转义字符的字符串。string str = @"C:\Users\Shani\Downloads\Book1.xlsx";
上面的代码是下面代码的替代方案。
string str = "C:\\Users\\Shani\\Downloads\\Book1.xlsx";
-
下面的代码在程序启动时显示了大量的字符串文字和其他字符串问题。
private void AtsymbolForm_Load(object sender, EventArgs e) { txtdblSlash.Text = "C:\\Users\\Shani\\Downloads\\Book1.xlsx"; Console.WriteLine(txtdblSlash.Text); Console.WriteLine(@txtdblSlash.Text); }
这里添加一个
@
并不影响TextBox
的内容。
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn