[导入][MSIL] 27. IL Instructions - Box, UnBox

(1) 装箱/拆箱指令
  • box : 装箱。
  • unbox : 拆箱。
  • unbox.any : 拆箱。
box 对堆栈上的值类型对象进行装箱操作,值类型对象被弹出,取而代之的是一个指向托管堆(managed heap)的引用。unbox 指令和 box 正好相反,对装箱的对象进行拆箱操作,一个新的值类型对象被 "拷贝" 到本地变量表中,同时其地址被压入堆栈。unbox.any 相当于 unbox + ldobj,这样堆栈上就不是拆箱值后的地址,而是值类型对象本身。
.method void Test()
{
  .entrypoint  
  .locals init (int32 x, object y, int32 z)
  
  // x = 1234
  ldc.i4 1234

文章来源:http://www.rainsts.net/article.asp?id=604
posted @ 2007-10-14 19:07  橡树木棉狗  阅读(129)  评论(0编辑  收藏  举报