嗨,我有个课叫活动,
在窗体上,我将其对象数组创建为,
Activity[] _actList; 然后做这个,
List<Activity> termsList = _actList.ToList<Activity>();因为_actiList是空的,所以它会抛出ArgumentNullException。
所以我的问题是,
我如何处理这个异常?
还是有一个工作,以获得相同的功能?
请帮帮忙!
发布于 2017-09-13 04:31:49
在调用ToList之前,需要检查null
var termsList = _actList == null ? null : _actList.ToList(); 如果使用的是C# 6.0或更高版本,可以用更短的方式编写:
var termsList = _actList?.ToList(); 您也可以捕获异常,但在本例中我不建议这样做,特别是如果数组是null的常见场景
发布于 2017-09-13 04:38:38
通过分配空的默认数组,可以确保数组永远不为空。
Activity[] _actList = new Activity[] { };因此,当表单初始化时,数组也将被空数组初始化。如果现在正在执行.ToList(),那么您将得到一个空列表,而不是一个异常。
发布于 2017-09-13 04:43:21
使用适用于任何此类问题的try catch:
try {
List<Activity> termsList = _actList.ToList<Activity>();
}
catch(ArgumentNullException){
}如果默认值为null,则可以使用set?接线员:
List<Activity> termsList = (_actList ?? new Employee[] { }).ToList<Activity>();如果数组为空,这将为您提供一个空列表。
https://stackoverflow.com/questions/46188867
复制相似问题