我有以下代码
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参数.我究竟做错了什么?
<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)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |