私は以下の拡張メソッドを持っていますので、より一般的なものにしたいと思っています。一般的なタイプの静的関数を呼び出すC#の制限を回避するにはどうすればいいですか?
public static IList<User> ToList(this DataTable table)
{
IList<User> users = new List<User>();
foreach (DataRow row in table.Rows)
users.Add(User.FromDataRow(row));
return users;
}
この不満足な制限を回避する方法はありますか?
編集:以下の段落はbollocksですが、私はそれを維持しています答えの一つは、将来の読者に理にかなって:
ユーザーだけでなく、私の他のクラスは、IDataModel
を実装しています。 IDataModel
には1つの方法、FromDataRow(DataRow row)
が必要です。関数のプロトタイプをどこに置いても明らかに役立ちません。
例の呼び出しでToListの最初のパラメータを削除できます。 – JaredPar
FuncからT型を推論できるはずです。 – Samuel
@サミュエル、私はメソッドグループが型推論に参加しないと信じています。 – JaredPar