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

C# 到 IL 深度解析:第4章 關鍵字與操作符 (上)(10) - 預處理指令、字串處理與繼承基礎

     編輯:關於C語言

預處理指令在編譯期移除

#define、#if、#else、#endif 等預處理指令僅影響編譯器,不產生 IL。編譯器根據條件直接保留或捨棄代碼塊。

範例:#define 控制編譯輸出

#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()。

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