返回目录 类的扩充 在ILAsm中,和在Visual Basic和C#中,一个类的所有的成员、特性和内嵌类都在这个类的词法范围内声明。然而,ILAsm允许你重新打开一个已经关闭的类范围并定义额外的项: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-... Read More
返回目录 值类型 值类型是CLR模型中最接近C++结构的。这些类型是一些带有平凡结构(例如,一个4字节整数)或复杂结构的值。当你声明一个类的类型的变量时,你不用自动创建一个类的实例。你只是创建了一个指向类的引用,初始化指向空。但是当你声明一个值类型的变量,这个值类型的实例立即被分配,通过变量声明本身,因为值类型是一个主要的数据结构。同样的,一个值类型必须有实例字段或大小的定义。一个0大小的值... Read More
返回目录 类的特性 在前面的章节(“类的元数据”)列出了包括在一个类型定义中的各种信息。在最简单的情况中,当只涉及到TypeDef元数据表的时候,对于一个类型定义的ILAsm语法如下所示: .class extends { ... } 在.class指令中指定的值定义了TypeDef的Namespace和Name项,在.extends子句中指定的定义了Extends项,而... Read More
返回目录 正如在前面章节所讨论的,CLR计算模型本质上是面向对象的。类的概念——或者,为了使用更加精确的运行时术语,类型的概念——围绕着整个被组织起来的计算模型的核心原则。一个项的类型——变量、常量、参数等等——定义了数据表示和这个项的行为特性。因此,一个类型可以被另一个代替只有当这两方面和这两种类型是相当的——例如,一个派生类可以被解释为它的父类的类型。 CLI的ECM... Read More