1.类和接口
在C#中接口是负责功能的定义,项目中通过接口来规范类,而类是负表具体功能的实现。
一个类可以继承一个基类也就是父类,但可以实现多个接口(接口其实就是实现了多继承)。
在类中也有抽象类的定义,抽象类用abstract声明,抽象类(abstract class)不能实列化,抽象类里可以有抽象的方法,属性,也可以有具体的方法和属性。也就是说抽象类里可以有抽象方法,也可以有具体的方法,但是有抽象方法的类一定是抽象类。
接口(interface)只是功能的定义,是一个行为的规范,接口中可以包含方法,属性,而这些只有定义,而没有实现体。
2.值类型和引用类型
值类型和引用类型的区别在于,值类型的变量直接存放的是实际数据,而引用类型的变量存放的则是数据的地址。值类型的变量直接把变量的值保存在堆栈中,从堆栈中可以快速的访问实际数据,因此值类型表示实际数据,而引用类型的变量则是把实际数据的地址保存在堆栈中,而实际数据保存在堆中。表示指向存储在内存堆中数据的指针和引用,(包括类,接口,数组和字符串),因此值类型和引用类型最基本的区别在于内存中的存诸方式。
| 值类型 | 引用类型 | |
| 变量存放内容 | 实际值 | 引用 |
| 内存单元 | 堆栈 | 堆 |
| 传递参数 | 实际值 | 引用(对象) |
浙公网安备 33010602011771号