1、预定义非简单类型(整型,浮点数,bool,char)+用户定义类型中的class,array,delegate,interface组成引用类型

2、预定义简单类型(object,string,dynamic)+用户定义类型中的struct,enum组成值类型

3、值类型数据+引用类型的引用存放于栈(内存数组,先进后出)中;引用类型的数据存放于堆(内存区域,任意顺序)中,且引用类型无论成员如何均存放在堆中(大的决定小的)

    eg:引用类型MyType有两个成员:A为值类型,B为引用类型,A、B均跟随MyType存放于堆中

4、dynamic关键字是动态化的静态类型

5、可空值类型存在的意义是为了表示无这一状态,最典型的例子是?bool(表明一个学生的在校状态)可以为ture(在校),false(离校),null(未知)

// 声明一个可空的 bool 类型
bool? hasLeft = null;   // 表示学生是否离校的信息尚未录入
······
if (hasLeft == true)
{
    Console.WriteLine("学生在校");
}
else if (hasLeft == false)
{
    Console.WriteLine("学生离校");
}
else
{
    Console.WriteLine("学生状态未知"); // 这行会被执行
}

6、在一个可空类型中不可以创建可空类型

7、可空类型声明:int? myNInt = 1;

更多推荐