C#分几种类型

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:31:33
今天去面试,别人问我C#分为几种类型,请教高手!!!

广义上说,C#(及所有.NET语言)只分为值类型和引用类型,值类型就是定义好以后,默认为各类型的初始值(如int为0)对它的每次引用赋值都会新建一个副本。而引用类型定义好以后,默认为null,要初始化后才能用,并且对它的引用赋值不会新建副本:比较下面:
int a=0; int b=a; b=5;
这种情况,a不会变成5,因为int是值类型
Hashtable a, b;
a[0]=0; b=a; b[0]=4;
这种情况下a[0]会变成4,因为Hashtable是引用类型

C# 1.0的值类型:
int float long double char short byte datetime timespan 及用户定义struct
C# 2.0增加以下的值类型:
int? float? long? double? char? short? byte? datetime? timespan?
C# 3.0增加以下的值类型:
Tuple(匿名struct)

C#的引用类型:
除了上面提到的以外,所有的其他类型,如string, array, arraylist, hashtable, stack及用户定义的类都是引用类型

C#的标准类型和C++基本一样,有包括int, long, float, double, char, string, arrays, structs , class等
值类型,单元直接存放“有效值”
引用类型,单元放的是另外一个对象的引用(地址)

鞋带叔叔:你能区分它们吗?

值类型和引用类型 还有一个就是泛型

值类型和引用类型