#define、#if、#else、#endif 等預處理指令僅影響編譯器,不產生 IL。編譯器根據條件直接保留或捨棄代碼塊。
#define vijay
#if vijay
Console.WriteLine("1");
#else
Console.WriteLine("2");
#endif
IL 僅包含 ldstr "1" call WriteLine,#else 區塊完全消失。
\n、\t 等逸出序列保留在 IL ldstr 中。@ 前綴):逸出序列不處理,原樣保留。\\ 輸出單一反斜線。// C# 代碼
Console.WriteLine("hi \nBye\tNo");
Console.WriteLine(@"""");
Console.WriteLine(@"hi \nBye\tNo");
IL 對應三個 ldstr,內容分別為 "hi \nBye\tNo"、""""、@"hi \nBye\tNo"。
無覆寫方法時,派生類實例調用基類方法,IL 直接 call instance void yyy::abc()。