我有一个接口,由存储库使用)与该成员:
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);
我认为第二个通用参数应该可以通过id
是int
来推断(这就是我的第二个通用参数)。
是否有可能得到这样的东西,我不必在课堂上指定id字段的类型?