假设我有一个像
public class DataService
{
public IList<T> All<T>() { ... }
public T Get<T>(int id) { ... }
...
}
我可以以各种方式使用它...
var dataService = new DataService();
var customers = dataService.All<Customer>();
var order = dataService.Get<Order>(1);
...但是如果我有一堆操作相同的 T,这将变得很麻烦。那么有这样的东西会很好:
dataService.TypeIs<Order>();
var order2 = dataService.Get(2);
var order2 = dataService.Get(3);
var allOrders = dataService.All();
方法会是什么样TypeIs<T>()
子?我认为它必须以某种方式转换DataService
为DataService<T>
并设置 T... 或者这完全不可能?