次のようなクラスがあるとしましょう
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
どうにかして T に変換して設定する必要があったと思いますDataService<T>
... それとも、これはまったく不可能ですか?