1. 程式人生 > 實用技巧 >C# Progma指令學習

C# Progma指令學習

#pargma 為編譯器給出特殊指令以編譯它所在的檔案。這些指令必須受編譯器支援。即是說,不可使用#pragma建立自定義處理指令。Microsoft C# 編譯器支援一下兩種#pragma指令:

  #pragma warning

  #pragma checksum

語法

  #pragma pragma-name pragma-arguments

引數:

  pragma-name:已識別雜注的的名稱

pragma-arguments: 特定於雜注的引數

#pragma warning 可以啟用或禁用特定警告

  語法: #pragma warning disable warning-list

     #pragma warning restore warning-list

  引數:warning-list 以逗號分隔的警告編號列表。“CS”字首是可選的。未指定警告編號時,disable會禁用所有警告,restore會啟動所有警告。

  備註:若要在Visual Studio中查詢警告編號,請生成專案,然後在輸出視窗(Outlook Window)中查詢警告編號。

#pragma checksum 生成原檔案的校驗和以幫助除錯ASP.NET頁面

  語法:#pragma checksum "filename" "{guid}" "checksum bytes"

  引數:"filename"需要監視更改或更新檔案的名稱。

     "{guid}" 雜湊演算法的全域性唯一識別符號(GUID)

     "checksum_bytes" 表示校驗和(checksum)位元組的十六進位制數字的字串。必須是偶數個十六進位制數字。奇數個十六進位制數字會導致編譯時警告出現,且指令遭忽略。

  備註:Visual Studio偵錯程式使用校驗和 確保它可以始終找到正確的源。編譯器為原始檔計算校驗和,然後將輸出發出到程式資料庫(PDB)檔案。偵錯程式隨後使用PDB針對它為原始檔計算的校驗和 進行比較。

     此解決方案不適用於ASP.NET專案,因為計算的校驗和用於生成的原始檔,而不用於.aspx檔案。為解決此問題,#pragma checksum為ASP.NET頁面提供校驗和支援。

     在Visual C#中建立ASP.NET專案時,生成的原始檔包含.aspx檔案(從該檔案生成源)的校驗和。編譯器隨後將此資訊寫入PDB檔案中。

     如果編譯器在檔案中未遇到#pragma checksum指令,則會計算校驗和並將值寫入PDB中

  

class TestClass  
{  
    static int Main()  
    {  
        #pragma checksum "file.cs" "{406EA660-64CF-4C82-B6F0-42D48172A799}" "ab007f1d23d9" // New checksum  
    }  
}