个人学习笔记(一)

C#中引用和C/C++ 指针的区别

C/C++程序员可能习惯性地将引用类型想象成指针,虽然C#的引用类型和指针由许多共同点,但指针提供的功能多得多。例如,在C/C++应用程序中,一个指针可以引用几乎任何内存块,无论块中容纳的是什么类型的数据,这个特性偶尔非常有用,但在大多数时候,它是造成许多难以发现的编程错误的罪魁祸首,在C#中,所有引用都是严格限定了类型的;你不能声明一个引用变量来引用一种类型,再用同一个变量来访问容纳了一种不同类型的内存块.

结构和类的主要区别:

                     结构               类

是值类型还是引用类型?         值类型              引用类型

实例存在于堆上还是堆栈上?   结构的实例称为值,存在于堆栈上   类的实例称为对象,存在于堆上\

可以声明一个默认构造函数吗?       不可以               可以

如果声明自己的默认构造函数         会                不会   

编译器仍会生成默认构造函数吗?   

如果在自己的构造函数中不初始化一个     不会                会

字段,编译器会帮你初始化吗?

可以在声明一个实例字段的同时初始化它吗?   不可以              可以     

可以从基类继承吗?             不可以               可以

数组和集合的区别:

1.数组要声明它容纳的元素类型,而集合不声明,这是由于集合以object的形式来存储它的元素.

2.一个数组实例具有固定的大小,不能伸缩,集合则可根据需要动态改变大小.

3.数组是一种可度可写的数据结构,没有办法创建一个只读数组,然而,可以使用集合类提供的ReadOnly方法以只读方式来使用集合.

你可能感兴趣的:(C#)