在c#中, 雖然編譯器沒有單獨的預處理器,但在處理預處理指令時如同存在乙個單獨的預處理器;這些指令用於輔助條件編譯。與 c 和 c++ 指令不同,不能使用這些指令建立巨集。
預處理器指令必須是行上的唯一指令。
c# 語言的預處理器指令:
#if
#else
#elif
#endif
# define
#undef
#warning
#error
#line
#region
#endregion
#pragma
#pragma warning
#pragma checksum
在以上這些預處理指令中,值得注意的有3個:
#line 使您可以修改編譯器的行號以及(可選)錯誤和警告的檔名輸出。下面的示例說明如何報告與行號關聯的兩個警告。#line 200 指令強迫行號為 200(儘管預設值為 #7)。另一行 (#9) 作為預設 #line 指令的結果跟在通常序列後。
#line 指令可能由生成過程中的自動中間步驟使用。例如,如果行從原始的源**檔案中移除,但是您仍希望編譯器基於檔案中的原始行號生成輸出,則可以移除行,然後用 #line 模擬原始行號。
#line hidden 指令對偵錯程式隱藏若干連續的行,這樣當開發人員在逐句通過**時,將會跳過 #line hidden 和下乙個 #line 指令(假定它不是另乙個 #line hidden 指令)之間的所有行。此選項也可用來使 asp.net 能夠區分使用者定義的**和計算機生成的**。儘管 asp.net 是此功能的主要使用者,但很可能將有更多的源生成器使用它。
#line hidden 指令不會影響錯誤報告中的檔名或行號。即,如果在隱藏塊中遇到錯誤,編譯器將報告當前檔名和錯誤的行號。
#line filename 指令指定您希望出現在編譯器輸出中的檔名。預設情況下,使用源**檔案的實際名稱。檔名必須括在雙引號 ("") 中。
源**檔案可以具有 #line 指令的任何編號。
#pragma 用於給編輯器提供特殊的指令,說明如何編譯包含雜注的檔案。
主要應用
#pragma warning disable warning-list
#pragma warning restore warning-list
warning-list
警告編號的逗號分隔列表。只輸入數字,不包括字首 "cs"。
當沒有指定警告編號時,disable 禁用所有警告,而 restore 啟用所有警告。
還有乙個是#error指令將警告視為錯誤:
#error warning disable warning-list
#error warning restore warning-list
C 程式設計中的預處理指令
在c 中,雖然編譯器沒有單獨的預處理器,但在處理預處理指令時如同存在乙個單獨的預處理器 這些指令用於輔助條件編譯。與 c 和 c 指令不同,不能使用這些指令建立巨集。預處理器指令必須是行上的唯一指令。c 語言的預處理器指令 if else elif endif define undef warnin...
C 中的預處理指令
c 中的預處理指令 作為預處理中的一對 region name endregion可能是大家使用得最多的,我也常用它來進行 分塊,在乙個比較長的cs檔案中,這麼做確實是一件可以讓你使 更清晰的好辦法,vs也自動用這個來包含自動生成的 它這麼做既可以使開發人員更清晰的檢視自己的 也開了乙個好頭,使更多...
C 預處理指令
1.define 通常和 if一起使用 使用 define可以定義乙個符號,並通過將該符號用作表示式傳遞給 if 指令,使該表示式的計算結果為true 比如 preprocessor if.cs define debug define vc v7 using system public class ...