Просто хочу сделать простое расширение для синтаксического sygar:
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>
. - person Roman Boiko   schedule 24.11.2009