问题 | 值类型 | 引用类型 |
该类型分配在哪里? | 分配在栈上 | 分配在托管堆上 |
变量是怎么表示的? | 值类型变量是局部复制 | 引用类型变量指向被分配的实例所占的内存 |
基类型是什么? | 必须派生在System.ValueType | 可以派生自除了System.ValueType以外的任何类型,只要那个类型不是密封的 |
这个类型能作为其它类型的基类么? | 不能,值类型总是密封的,不能够被继承 | 能,如果这个类型不是密封的,它可以作为其它类型的基类 |
默认的参数传递行为是什么? | 变量是按值传递的(也就是一个变量的副本传入被调用的函数) | 变量按引用传递,即变量的地址传入被调用的函数 |
这个类型的变量什么时候消亡? | 当它们越出变量定义的作用域时 | 当托管被垃圾回收时 |
可以为这个类型定义构造函数么? | 是的,但是默认的构造函数被保留(也就是自定义构造函数必须全部带有参数) | 当然可以 |
这个类型能重写System.Object.Finalize()么? | 不能,值类型不是分配在堆上,因此不需要被终结 | 可以间接的重写 |