1. 浅度复制和深度复制
简单的按照成员副职对象可以通过派生于System.Object的MemberwiseClone()方法来完成。这是一个受保护的方法,但很容易在对象上定义一个调用该方法的公共方法。这个方法提供的复制功能称为浅度复制。因为它没有考虑引用类型成员。因此,新对象中的引用成员就会指向与源对象中相同的成员对象,在许多情况下这并不理想。如果 要创建成员的新实例(复制值而不复制引用),此时需要使用深度复制。
2.
3. 方法定义中使用的关键字
virtual:方法可以重写
abstract:方法必须在非抽象的派生类中重写(只用于抽象类中)
override:方法重写了一个基类方法(如果方法被重写,就必须使用该关键字)
extern:方法定义放在其他地方
4. 接口的定义与类的定义不一样的地方
5. 部分类、部分方法partial
6. 封箱和拆箱
封箱是把值类型转换为System.Object类型,或者转换为由值类型实现的接口类型。拆箱是相反的过程。
7. 转换
(1) 重载运算符
隐式转换
ConvClass1 op1 = new ConvClass1();
ConvClass2 op2 = op1;
显式转换
ConvClass1 op1 = new ConvClass1();
ConvClass2 op2 = (ConvClass2)op1;
(2)as运算符
使用下面的语法,把一种值类型转换为指定的引用类型
<operand> as <type>
这只适用于下列情况
<operand>的类型是<type>类型
<operand>可以隐式转换为<type>
<operand>可以封箱到<type>类型中
如果不能从<operand>转换为<type>,表达式的结果为null