Хороший вопрос также. Нам нравится стандартизация =)
росто вопрос любопытства, который меня интересовал, если бы у кого-нибудь был хороший ответ:
Например, в библиотеке классов .NET Framework есть два следующих метода:
public static IQueryable<TSource> Where<TSource>(
this IQueryable<TSource> source,
Expression<Func<TSource, bool>> predicate
)
public static IEnumerable<TSource> Where<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)
Почему они используютFunc<TSource, bool>
вместоPredicate<TSource>
? Похоже наPredicate<TSource>
используется толькоList<T>
а такжеArray<T>
, покаFunc<TSource, bool>
используется практически всемиQueryable
а такжеEnumerable
методы и методы расширения ... что с этим?