CLR via C#笔记(2)

Q-->question        A-->answer        M-->mention  (2007-05-31)

Q:程序集中(指元数据)有哪些表?
  A:1.方法定义表-->用来记录方法是否静态,虚,实例方法
     2.模块定义表-->包含一个用于标识模块的记录项
     3.类型定义表-->记录每一个类型
     4.字段表,参数表,属性表,事件表
     5.引用表分为-->程序集(Assembly),模块引用(Module),类型(Type)引用,成员(member)引用
     6.清单(manifest)表分为-->程序集(Assembly),文件(File),资源(Resource),导出类型(Export Type)
     清单的作用->使程序集具有自描述性(self-describing)

Q:元数据的补充?
A:1.其是一个二进制数据块,由几个表构成(指上述的几个表)
    2.表类别-->定义表(definition),引用表(reference),清单表(manifest)

Q:CLR提供哪些指令调用方法?
A: 1.call 可以用来启用静态,实例,虚方法
    2.callvirt 用来调用实例,虚方法,但效率低于call

Q:为何在设计类型时,应尽量减少定义的虚方法数量?
A:  1.虚方法调用比非虚方法调用速度慢
      2.编译器无法内联虚方法,将进一步影响性能
      3.虚方法使组件版本控制能力更弱
     4.定义基础类型时,需要提供一组有用的重载,若需要多态,则将最复杂的虚化,其他为实例方法

Q: 密封类型比非密封类有何优点?
A: 1.版本控制-->主要指破坏兼营性
    2.性能-->主要指不用查找运行时状态,因为其无派生类
    3.安全性和可预测性-->类必须保护它自己的状态,而且不被破坏

转载于:https://www.cnblogs.com/stock3745/articles/767232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值