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 } }