你的list是在第一个case里吧
把list拿到个边 去
报错的原因在于你实例化的那个数组。与list无关。
我记得 数组需要一个实际存在的count值吧 来声明数字个数,可能那个count存在null的可能。
第一个case里的数组就没报错啊
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,只有运行时才会报错,编译不会。
你的list是在上一个case里命名的?
你还不如再用一个list呢
敢不敢把list放到switch外面,并实例化后在试试?
生成json字符串为何要这么麻烦去写,可以参考http://space.itpub.net/12639172/viewspace-503464