我只想为 语法糖 制作一个简单的扩展:
public static bool IsNotEmpty(this ICollection obj)
{
return ((obj != null)
&& (obj.Count > 0));
}
public static bool IsNotEmpty<T>(this ICollection<T> obj)
{
return ((obj != null)
&& (obj.Count > 0));
}
当我使用一些集合时,它可以完美地工作,但是当我使用其他集合时,会出现以下错误:
调用以下方法或属性时存在歧义: 'PowerOn.ExtensionsBasic.IsNotEmpty(System.Collections.IList)' 和 'PowerOn.ExtensionsBasic.IsNotEmpty(System.Collections.Generic.ICollection)'
有没有解决这个问题的标准方法?
不,我不想在调用此方法之前执行转换;)
List<T>
实现了ICollection
和IList<T>
,而IList<T>
继承了ICollection<T>
。因此,List<T>
同时实现了ICollection
和ICollection<T>
。 - Roman Boiko