优秀的编程知识分享平台

网站首页 > 技术文章 正文

C#中@字符的使用(c#中&符号)

nanyue 2024-07-19 23:57:58 技术文章 5 ℃

在C#中,@字符可用于如下方面:

1、字符串原样输出,不进行字符串转义:

通过在字符串前添加@字符,可以将字符串中的转义字符(如字符\,字符",字符')视为普通字符,而不需要使用双斜杠进行转义。

示例:

string myString = @"C:\Windows"; //与 string myString = "C:\\Windows"; 等价
Console.WriteLine(myString); //输出:C:\Windows

注意,有一种特殊情况

如要在一个用 @ 引起来的字符串中包括一个双引号,需要使用两对双引号:

string myString = @"Mr. Zhang said, ""Hello""";  
Console.WriteLine(myString); // 输出:Mr. Zhang said, "Hello"

2、用 @把关键字作为标识符:

C#中有许多关键字,如if、for、while等,这些关键字是C#语言的保留字,不能用作标识符。但是,通过在关键字前添加@字符,可以将关键字当作标识符使用。

例如,@if是一个有效的变量名,可以用于保存数据。

示例:

string @if = @"Mr. Zhang said, ""Hello""";
Console.WriteLine(@if); //输出:Mr. Zhang said, "Hello"

3、用 @使编译器在命名冲突的情况下区分两种属性:

属性是派生自 Attribute 的类。 其类型名称通常包含后缀 Attribute,但编译器不会强制进行此转换。 随后可在代码中按其完整类型名称(例如 [InfoAttribute])或短名称(例如 [Info])引用此属性。 但是,如果两个短名称相同,并且一个类型名称包含 Attribute 后缀而另一类型名称不包含,则会出现命名冲突。

示例:

using System;

[AttributeUsage(AttributeTargets.Class)]
public class Info : Attribute
{
   private string information;

   public Info(string info)
   {
      information = info;
   }
}

[AttributeUsage(AttributeTargets.Method)]
public class InfoAttribute : Attribute
{
   private string information;

   public InfoAttribute(string info)
   {
      information = info;
   }
}

[Info("A simple executable.")] // 这句出现编译错误,因为编译器无法确定将 Info 还是 InfoAttribute 属性应用于 Example 类
// 应该改为 [@Info("A simple executable.")] 
public class Example
{
   [InfoAttribute("The entry point.")]
   public static void Main()
   {
   }
}

以上是C#中@字符的使用方法,谨供初学者参考。

最近发表
标签列表