指定一个通用参数,推断其余参数?

时间:2013-05-10 09:10:40

标签: c# generics type-inference

我有一个接口,由存储库使用)与该成员:

T FindById<T, TId>(TId id)
    where T : class, IEntity<TId>
    where TId : IEquatable<TId>;

这允许调用者指定实体类型(T)及其Id字段(TId)的类型。然后,此接口的实现者将查找T类型的实体,并使用id参数根据其id(在IEntity<TId>上定义)对其进行过滤。

目前我这样称呼它:

int id = 123;
var myApproval = PartsDC.FindById<Approval, int>(id);

理想情况下,我想这样做:

int id = 123;
var myApproval = PartsDC.FindById<Approval>(id);

我认为第二个通用参数应该可以通过idint来推断(这就是我的第二个通用参数)。

是否有可能得到这样的东西,我不必在课堂上指定id字段的类型?

0 个答案:

没有答案