C#学习笔记(五)

来源:互联网 发布:网络覆盖解决方案 编辑:程序博客网 时间:2024/05/16 10:59

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



0 0
原创粉丝点击