我有一个名为Identifiable<TId>
的接口,其中包含一个给定类型的属性Id。我想创建一个泛型类,以这个接口作为类型参数之一。它应该是泛型的,因为我想返回具体类型,从其中调用其他泛型方法,并使用像typeof(T)
这样的东西。
这可以正常工作:
public class ClassName<T, TId> where T : Identifiable<TId>
问题是调用代码必须传入两种类型。例如:new ClassName<Person, int>()
我想知道在 .net 3.5 中是否有一种方法可以编写代码,使得 TId 可以由 T 推断出来?这样调用者只需要使用 new ClassName<Person>()
就行了吗?