首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# @ 符號完整用法指南:字串逐字、多行與關鍵字識別項

     編輯:關於C語言

前言

C# 中的 @ 符號有三大核心用法:逐字字串字面值、多行字串、允許關鍵字作為識別項。善用它能大幅簡化程式碼、提升可讀性。本文詳細說明各場景用法與範例。

一、逐字字串字面值 —— 忽略逸出字元

在字串前加 @,字串內的反斜線 \ 不會被視為逸出字元,直接按字面意義處理。最常見於檔案路徑、正則表達式、Windows 路徑。

傳統寫法(需雙反斜線)

string fileName = "D:\\文本文件\\text.txt";

使用 @ 符號(直觀、不易出錯)

string fileName = @"D:\文本文件\text.txt";

其他適用場景

  • 正則表達式:@"^\d{4}-\d{2}-\d{2}$" 比 "^\\d{4}-\\d{2}-\\d{2}$" 更易讀
  • JSON/XML 片段嵌入程式碼
  • 任何包含大量反斜線的字串

二、多行字串 —— 直接換行無需串接

加上 @ 後,字串可跨多行撰寫,保留原始格式(含縮排、換行符),無需使用 + 串接或 \n。

傳統寫法

string strSQL = "SELECT * FROM HumanResources.Employee AS e"
    + " INNER JOIN Person.Contact AS c"
    + " ON e.ContactID = c.ContactID"
    + " ORDER BY c.LastName";

使用 @ 符號

string strSQL = @"SELECT * FROM HumanResources.Employee AS e
INNER JOIN Person.Contact AS c
ON e.ContactID = c.ContactID
ORDER BY c.LastName";

注意:字串內的縮排空白會被保留,若不想要前導空白,可搭配 string.Trim() 或在原始碼中靠左對齊。

三、關鍵字作為識別項 —— 讓保留字變身變數/類別名

C# 禁止關鍵字(如 class、namespace、int、static)直接作為識別項。但在識別項前加 @,即可合法使用。這在程式碼產生器、互通性場景、或需對應資料庫欄位名(如 order、group)時很實用。

完整範例

namespace @namespace 
{
    class @class 
    {
        public static void @static(int @int)
        {
            if (@int > 0)
            {
                System.Console.WriteLine("Positive Integer");
            }
            else if (@int == 0)
            {
                System.Console.WriteLine("Zero");
            }
            else
            {
                System.Console.WriteLine("Negative Integer");
            }
        }
    }
}

常見應用場景

場景範例
資料庫欄位名為保留字var @select = db.Query("SELECT @select FROM ...");
第三方 API 參數名衝突method(@params: value);
程式碼產生工具自動產生的屬性名可能為關鍵字

四、總結與最佳實務

  • 檔案路徑、正則表達式:習慣使用 @"",減少逸出字元錯誤
  • 長 SQL、JSON、XML:使用 @"" 多行字串,維護性極佳
  • 關鍵字衝突:@keyword 為最後手段,優先考慮重新命名
  • 插值字串:C# 6+ 支援 $@"" 組合,同時享有插值與逐字優勢

掌握 @ 符號三大用法,能讓你的 C# 程式碼更乾淨、更專業、更不易出錯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved