(值类型引用类型)和null的关系

1.null
   null表示变量没有指向任何对象。

2.值类型
   包括 bool、结构体、枚举、int、double、float等等 。在.NET中值类型都继承自ValueType。

3. 引用类型
   包括 字符串、数组、类、接口等。在.NET中引用类型都继承自Object。

4. 引用类型和null
  
    Person p1 = new Person();
   //定义的p1此时没有任何指向了!
    p1 =null; 
    p1.SayHi();
——————————————
执行完上面的代码,直接就抛出了一个异常我们非常熟悉的
未将对象引用到对象实例NullReferenceException
这就是引用类型和null的关系,当一个引用类型=null了以后,表示他没有了任何指向。

5. 值类型与null
  //如果在项目中我这样写
  int num = null;  //就不用等着抛异常了,因为编译器会直接报错的。因为值类型不能等于null。
如果我非让 int num = null;怎么办呢?请看第6条。

6.可空数据类型。
在.NET中,默认情况下。
以为空的数据类型  是 引用类型。
不可以为空数据类型  是 值类型。
如何让值类型可以为控呢? 可以这样写。
//加了一个?表示让int类型 可空。称之为可空类型的int。
int ? num = null;//这种写法在数据库应用中的实体类中使用广泛。数据库中的某个字段可空,
                            //那么实体类中的属性也应该对应着可空。用的就是这个。



原文地址:https://www.cnblogs.com/mcad/p/4193186.html