打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[CLR via C#]6. 类型和成员基础
[CLR via C#]6. 类型和成员基础

6.1 类型的各种成员

  在一个类型中,可以定义0个或多个以下种类的成员:

  6.2 类型的可见性

  在文件范围中定义类型时,可以将类型的可见性指定为public或internal。

  定义类型的成员(包括嵌套类型)时,可指定成员的可访问性(accessibility)。

  6.4 静态类

  在C#中,要用static关键字定义不可实例化的类。这个关键字只能应用于类,不能引用于结构 (值类型)。这是因为CLR总是允许值类型实例化。

  6.5 分部类、结构和接口

  partial这个关键字告诉C#编译器,一个类、结构或者接口的定义源代码可能分散到一个或者多个源代码文件中。

  组件软件编程(Component Software programming,CSP)正是OOP发展到极致的一个成功。下面列举了组件的一些特点。
  2)callvirt 这个调用指令可调用实例方法和虚方法,但不能调用静态方法。用callvirt指令调用实例方法或虚方法时,必须指定引用了一个对象的变量。用callvirt指定调用非虚实例方法时,变量的类型指明了最终由CLR调用的方法是在哪个类型中定义的。用callvirt指令调用虚实例方法时,CLR会调查发出调用的哪个对象的实际类型,然后以多态方式调用。为了确定类型,用来发出调用的变量决不能为null。换言之,编译这个调用时,JIT编译器会生成代码来验证变量的值是不是为null。正是由于要进行这种额外的检查,所有callvirt指令执行速度比call稍慢。注意,即使callvirt指令调用的是一个非虚的实例方法,也会执行这种null检查。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[你必须知道的.NET]第十九回:对象创建始末(下) - Anytao - 博客园
ReferenceEquals, == , Equals
C#编码规范(1.0)
《Effective C#中文版:改善C#程序的50种方法》读书笔记
应用程序配置和动态加载4----反射
C#基础全接触
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服