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

《C# to IL》第二章 IL 基礎(十)

     編輯:關於C語言

區域變數初始化

.locals (int32 V_0)
ldloc.0          // 讀取未初始化的 V_0
call void [mscorlib]System.Console::WriteLine(int32)
// 輸出隨機記憶體值(如 51380288)

IL 不強制初始化區域變數,C# 編譯器會強制。

靜態欄位初始化

.field private static int32 i
.method public hidebysig static void vijay() il managed {
  .entrypoint
  ldc.i4.s 10
  stsfld int32 zzz::i
  ldstr "{0}"
  ldsflda int32 zzz::i
  box [mscorlib]System.Int32
  call void [mscorlib]System.Console::WriteLine(class System.String, class System.Object)
  ret
}

靜態建構函式 .cctor

.method public hidebysig specialname rtspecialname static void .cctor() il managed {
  ldc.i4.6
  stsfld int32 zzz::i
  ldstr "zzzs"
  call void [mscorlib]System.Console::WriteLine(class System.String)
  ret
}

.cctor 在首次存取類別前自動執行,初始化靜態欄位。

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