C#中引用和C/C++ 指针的区别
C/C++程序员可能习惯性地将引用类型想象成指针,虽然C#的引用类型和指针由许多共同点,但指针提供的功能多得多。例如,在C/C++应用程序中,一个指针可以引用几乎任何内存块,无论块中容纳的是什么类型的数据,这个特性偶尔非常有用,但在大多数时候,它是造成许多难以发现的编程错误的罪魁祸首,在C#中,所有引用都是严格限定了类型的;你不能声明一个引用变量来引用一种类型,再用同一个变量来访问容纳了一种不同类型的内存块.
结构和类的主要区别:
结构 类
是值类型还是引用类型? 值类型 引用类型
实例存在于堆上还是堆栈上? 结构的实例称为值,存在于堆栈上 类的实例称为对象,存在于堆上\
可以声明一个默认构造函数吗? 不可以 可以
如果声明自己的默认构造函数 会 不会
编译器仍会生成默认构造函数吗?
如果在自己的构造函数中不初始化一个 不会 会
字段,编译器会帮你初始化吗?
可以在声明一个实例字段的同时初始化它吗? 不可以 可以
可以从基类继承吗? 不可以 可以
数组和集合的区别:
1.数组要声明它容纳的元素类型,而集合不声明,这是由于集合以object的形式来存储它的元素.
2.一个数组实例具有固定的大小,不能伸缩,集合则可根据需要动态改变大小.
3.数组是一种可度可写的数据结构,没有办法创建一个只读数组,然而,可以使用集合类提供的ReadOnly方法以只读方式来使用集合.