//问题一: List<string> list = new List<string>(); list = null; //这样写可以使用,但是当list值为null时会报未将对象的引用设置到对象的实列 if (list.Count > 0) { } //问题2: List<string> list2 = null; List<string> list4 = new List<string>(); list2 = list4; //这样写可以使用,但是当list的count为0时同样为进入到if中 if (list2 != null) { } //问题三: //这样写,当if值为null时,list.Count > 0会报未将对象的引用设置到对象的实列 if (list.Count > 0 || list != null) { } //问题四: //这样写,会报未将对象的引用设置到对象的实列 List<string> events = null; if (events != null || events.Count != 0) { } else { } //解决方法: List<string> list3 = new List<string>(); list3 = (list3 == null) ? new List<string>() : list3;//加个这个就可以直接使用list.Count > 0这种这种判断了,list值为null也没啥影响了 if (list.Count > 0) { } //或者 if (list3 == null || list3.Count == 0) { } else { }