List list;
switch (条件)
{
case A
list=...; // 这里实例化了list
break;
case B
// 这里肯定会报错
string[] items = new string[list.Count]
break;
}
因为没有实例化就使用引用变量,所以会报错,有两种办法,第一,把实例化放到条件外面,第二种情况比较特殊:
List list;
if (true){
list=...;
}
else{
list=...;
}
int count = list.Count; // 也会错?
需要这样用
List list = null;
OK ,就是说问题不仅仅是为null,并且是没有实例化,如果单纯为null,只有运行时才会报错,编译不会。