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

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

     編輯:關於C語言

函式參數傳遞與接收

呼叫端將參數推入堆疊;被呼叫端透過 ldarg 系列指令取用。

範例:傳遞 int 給接受 object 的方法

.method public hidebysig static void vijay() il managed {
  .entrypoint
  .locals (class zzz V_0, int32 V_1)
  newobj instance void zzz::.ctor()
  stloc.0
  ldloc.0
  ldc.i4.s 10
  stloc.1
  ldloca.s V_1
  box [mscorlib]System.Int32
  call instance void zzz::abc(class System.Object)
  ret
}

.method private hidebysig instance void abc(class System.Object i) il managed {
  ldstr "{0}"
  ldarg.1
  call void [mscorlib]System.Console::WriteLine(class System.String, class System.Object)
  ret
}

關鍵指令

  • ldloca.s:載入區域變數位址
  • box:值型別裝箱為物件
  • ldarg.1:載入第 1 個參數(0 為 this)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved