摘要: 今天跟大家分享一下关于访问限定和数据成员的知识。主要包括以下两点:Abstract, sealed, virtual, new, override怎么用?Const 和 readonly好像都表示不能改变的值,有什么区别呢?一、 访问限定类和方法有一些访问限定符,如private,public等。除此之外,还包含一些预定义特性。下面几个你都知道吗?1. 类的预定义特性Abstract——抽象类。不能实例化。如果派生类不是抽象类,则必须实例化。Sealed——密封类。不能做基类被继承。要想既不能实例化又不能被继承? 需要两个步骤:seadled修饰。防止被被继承 ;私有化无参构造器。防止实例化自 阅读全文
posted @ 2014-03-25 10:20 fireshadow23 阅读(192) 评论(0) 推荐(0)
摘要: 说起.NET中的类,本是同根生,一点不为过。因为CLR要求所有类都要继承自System.Object。所有对象都必须提供一组通用操作,包括对象的等值性、唯一性、散列码以及克隆。一、等值性——Equals()方法 有时候我们需要比较两个对象是否相等,比如在一个ArrayList中进行排序查找等操作时。System.Object提供了Equals()虚方法:class Object{public virtual Boolean Equals(object o){if (this == o) return true;else return false;}}这种判断方式非常简单:直接比较是两个引用是否 阅读全文
posted @ 2014-03-25 09:02 fireshadow23 阅读(166) 评论(0) 推荐(0)
摘要: 本节内容不太复杂,主要是介绍类的实例创建过程,以及类型之间相互转换的知识。一、 创建对象CLR要求用new操作符创建对象,这个操作符在编译时产生的IL指令为newobj。例如:Student XiaoJing=new Student(“XiaoJing”,”1986”);那么在创建过程中,究竟发生了什么事呢?分配空间。在托管堆中分配该类所需要字节数的内存空间。初始化对象的附加成员。每个对象有两个附加成员:一是指向类方法表的指针;二是SyncBlockIndex成员,CLR用该字段进行线程同步控制,某些位还可以用作垃圾回收标 记等等。CLR通过这两个成员管理对象实例。调用构造函数。其间可以传入指 阅读全文
posted @ 2014-03-25 08:53 fireshadow23 阅读(296) 评论(0) 推荐(0)