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
的内容。
相关文章
Linux 上的开发配置 C#
发布时间:2024/02/02 浏览次数:192 分类:编程语言
-
本文介绍如何设置 C# 语言以在 Linux 上进行开发。如果你对在 Linux 中开发 C# 应用程序的方法感兴趣,这篇文章是专门为你准备的。
在 C# 中的接口中实现属性
发布时间:2024/02/01 浏览次数:100 分类:编程语言
-
本文介绍如何在 C# 中的接口中实现属性。C# 中的接口可以有许多不同的属性,以及指定我们应该如何在其中声明属性可用性的访问修饰符。该接口通常充当不同成员和对象的默认实现。
在 C# 中注释文本块
发布时间:2024/02/01 浏览次数:192 分类:编程语言
-
本教程教你如何在 C# 中注释一段文本或代码。作为注解的注释处于更高的抽象级别,编译器在编译 C# 代码时会忽略它。
在 C# 中从子类的构造函数调用基类的构造函数
发布时间:2024/02/01 浏览次数:190 分类:编程语言
-
base 关键字可用于从 C# 中的子类的构造函数调用基类的构造函数。本教程将讨论从 C# 中的子类的构造函数调用基类的构造函数的方法。
C# 中的结构体和类之间的区别
发布时间:2024/02/01 浏览次数:175 分类:编程语言
-
结构体是驻留在堆栈中的值类型变量,而类是驻留在堆中的引用类型变量。在本教程中,我们将讨论 C# 中的结构体和类之间的区别和相似之处。
在 C# 中复制一个对象
发布时间:2024/02/01 浏览次数:120 分类:编程语言
-
有两种主要方法可用于在 C# 中创建对象的单独副本,MemberWiseClone()函数和参数化构造函数方法。在 C# 中使用 MemberWiseClone() 方法复制对象