首页 新闻 会员 周边

帮忙看一下 为什吗第二个case 的 string[] items = new string[list.Count]; list报错

0
[已解决问题] 解决于 2013-03-05 11:29

list报错 实用为赋值的                 ‘’‘’‘’‘’‘’‘’‘’                             谢谢大家

yujinchao的主页 yujinchao | 菜鸟二级 | 园豆:248
提问于:2013-02-27 11:24
< >
分享
最佳答案
0

你的list是在第一个case里吧

把list拿到个边 去

奖励园豆:5
li-peng | 小虾三级 |园豆:954 | 2013-02-27 16:53
其他回答(6)
0

报错的原因在于你实例化的那个数组。与list无关。

我记得 数组需要一个实际存在的count值吧 来声明数字个数,可能那个count存在null的可能。

telang | 园豆:646 (小虾三级) | 2013-02-27 11:31

第一个case里的数组就没报错啊

支持(0) 反对(0) 飞来飞去 | 园豆:2057 (老鸟四级) | 2013-02-27 12:09
0
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,只有运行时才会报错,编译不会。

sanmi | 园豆:73 (初学一级) | 2013-02-27 12:06
0

你的list是在上一个case里命名的?

飞来飞去 | 园豆:2057 (老鸟四级) | 2013-02-27 12:08
0

你还不如再用一个list呢

chenping2008 | 园豆:9836 (大侠五级) | 2013-02-27 13:25
0

敢不敢把list放到switch外面,并实例化后在试试?

何以解忧唯有撸码 | 园豆:37 (初学一级) | 2013-02-27 15:52
0

生成json字符串为何要这么麻烦去写,可以参考http://space.itpub.net/12639172/viewspace-503464

陈希章 | 园豆:2538 (老鸟四级) | 2013-02-28 07:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册