这是不好的做法(回归null
部分)?
public static ObservableCollection<TSource> ToObservableCollection<TSource>(
this IEnumerable<TSource> source)
{
if (source == null) return null;
return new ObservableCollection<TSource>(source);
}
答案 0 :(得分:7)
你应该抛出一个ArgumentNullExcception
。大多数.NET Framework扩展方法都是这样做的。或者,不执行任何操作,让ObservableCollection<T>
构造函数执行此操作。
public static ObservableCollection<TSource> ToObservableCollection<TSource>(this IEnumerable<TSource> source)
{
if (source == null)
{
throw new ArgumentNullException("source");
}
return new ObservableCollection<TSource>(source);
}
答案 1 :(得分:0)
我写我的处理空参数,所以我主张空检查。扩展方法在IL代码中以不同方式发出。它们作为类的静态方法发出,因此参数可以为null。
UPDATE:抛出异常或正确处理null值是我在扩展方法中处理null值的方法。