(WPF&Silverlight)可空,null

可空类型即引用类型

不可空类型即值类型

可空,即可 = null;

 注意点:在不可null类型后加?就可以为null

int? i = null;

int?的范围大于int(可null的大于不可为null)

即 int a = 1;

   int? b = a;这是可以的,但相反将int?赋值给int就不行。

wpf中用到的多,如CheckBox的IsChecked属性即为bool?类型

javascript中null属于初始类型(Ⅰ)之一

而用alert(typeof (null)); 则出来是object ,object是属于两种类型的另外一种引用类型(Ⅱ)

这是为什么呢?

Maybe

初始类型是存在栈中的,而引用类型是在堆中开辟空间(在栈中存储地址,指向堆中内存)

在栈中,开辟的空间是固定的,运行速度相对较快

在堆中,开辟的空间是可扩展的,运行速度相对较慢

各自有利有弊,也算符合能量守恒定律

说回null,null只是一个占位符(在栈中占一个位置),并未在堆中开辟内存。

作用:可以清空对象,当一个引用类型无用的时候,赋值成null,内存就被释放了。(猜测- -)

原文地址:https://www.cnblogs.com/joeymary/p/4618532.html