1.关于null的一些知识点
null表示变量没有指向任何的对象,如果一个对象在为null的情况下去调用它的属性或者是方法会抛出NullReferenceException异常,就是我们常见的未将对象引用到实例的异常。所以当在程序中抛出未将对象引用到实例的异常时,那肯定是引用类型到变量没有指向任何对象引起的。另外,只有引用类型的变量才可以被赋值为null。如果是值类型,如:数值类型(int、float、double等)、布尔类型(boolean)、枚举以及结构体,不能被赋值为null。这也是值类型的其中一个特点,另一个特点是值的传递是拷贝传递,而引用类型是引用传递,即地址传递。
2.成员变量和局部变量的区别
成员变量是类中的变量,如果声明的时候没有被赋值,会被默认的进行初始化。如果是整型的成员变量默认值为0,如果是引用类型,例如string,默认值初始化的值就是null。
局部变量是非成员变量,还包括函数参数中的变量也可以被看做是局部变量。如果声明时没有被赋值,不会被默认进行初始化。如果局部变量和成员变量重名,那么在类中可以通过this关键字来进行区分。