0
public interface IMasterService<out T> : IDisposable
{
        T GetByID(int id);
        IEnumerable<T> GetAll();
        IEnumerable<T> Where(Expression<Func<T, bool>> func);
        int AddNew(T newEntity);
}

Invalid variance: The type parameter 'T' must be contravariantly valid on 'IMasterService.Where(System.Linq.Expressions.Expression>)'. 'T' is covariant.

4

1 に答える 1

0

つまり、使用する<out T>場合は戻りT、使用する<in T>場合はパラメーターとして渡す必要がありTます。1 つのインターフェイスoutで との両方を使用することはできません。inなぜ使えないのか、今ははっきりとは言えませんがExpression<Func<T, bool>>、何か調べてみます。

于 2012-07-27T11:55:47.083 に答える