c#泛型类和方法的行为不符合预期

NZJ*_*mes 1 c# generics

我有以下代码

public class BaseDataRepository<T> : IDataRepository, IDisposable where T:class
    {
        public IQueryable<T> GetItems<T>() where T : class
        {
            return _context.Set<T>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用以下方式

using (var repository = new BaseDataRepository<DbInterestGroupCategory>())
{
    Assert.IsTrue(repository.GetItems().Count() == 3);
}   
Run Code Online (Sandbox Code Playgroud)

但我收到以下消息

方法"..."的类型参数不能从用法中推断出来.尝试显式指定类型参数.

我原以为该方法会自动从类泛型类型中推断出它的T参数.我究竟做错了什么?

Ale*_*ria 9

<T>从已经在课堂上声明它的方法中删除它

public class BaseDataRepository<T> : IDataRepository, IDisposable where T:class
{
    public IQueryable<T> GetItems()
    {
        return _context.Set<T>();
    }
}
Run Code Online (Sandbox Code Playgroud)

T in方法由这样的参数推断:

public void DoSomething<T>(T argument) // infer T from argument
{
}

// so you can call

DoSomething(new object()); // T is object
Run Code Online (Sandbox Code Playgroud)