MSIL编程全解析
1. 复杂任务与类型管理
在编程中,多数程序由复杂任务构成,如创建新类、数组或执行 for 循环等,这些复杂任务由多个指令组合而成。
1.1 类型管理
类包含静态成员和实例成员。静态成员可通过类名访问,而实例成员与对象相关联。例如, WriteLine 是静态方法,可直接在 Console 类上调用,如 System.Console::WriteLine 。
创建类的实例可使用 newobj 指令,它会创建类的实例并调用构造函数初始化对象,同时将对象的引用压入计算栈。若要对对象执行多个操作,就需要多个引用,此时 dup 指令可用于复制栈顶的引用。
newobj 指令的语法如下:
newobj instance instruction:
new ctorsignature
构造函数是具有特殊名称的方法,名称为 ctor ,用 .ctor 指令声明。在C#中,构造函数通常返回 void ,而在MSIL代码中,构造函数可以返回值。静态构造函数名为 cctor ,用同名指令声明,在首次访问类或实例时调用。
.field 指令
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



