帮忙看一下 为什吗第二个case 的 string[] items = new string[list.Count]; list报错
list报错 实用为赋值的 ‘’‘’‘’‘’‘’‘’‘’ 谢谢大家
8回答
-
慕运维8079593
你的list是在第一个case里吧
把list拿到个边 去
-
红颜莎娜
报错的原因在于你实例化的那个数组。与list无关。
我记得 数组需要一个实际存在的count值吧 来声明数字个数,可能那个count存在null的可能。
-
慕村225694
第一个case里的数组就没报错啊
-
HUWWW
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,只有运行时才会报错,编译不会。
-
慕雪6442864
你的list是在上一个case里命名的?
-
喵喔喔
你还不如再用一个list呢
-
明月笑刀无情
敢不敢把list放到switch外面,并实例化后在试试?