我正在努力与一些泛型。 以下是我的设置:类型约束中的泛型
interface I<T> { }
[...]
void Add<T>(T obj) where T : I<??> { }
我如何能确保T
在Add
方法实现I
?
我正在努力与一些泛型。 以下是我的设置:类型约束中的泛型
interface I<T> { }
[...]
void Add<T>(T obj) where T : I<??> { }
我如何能确保T
在Add
方法实现I
?
下面的签名将允许Add
采取实现I<>
与任何类型参数的任何T
。
void Add<T,S>(T obj) where T : I<S> {
}
使用这种方法签名的缺点是,类型推断不踢,你必须指定所有类型的参数,它看起来荒唐透顶:
blah.Add<I<int>, int>(iInstance);
一个更简单方法是使用下面的签名:
void Add<T>(I<T> obj) {
}
'void Add
您还需要传递T参数才能添加。
void Add<TI, TAny>(TI obj) where TI : I<TAny>
的方法'TI'是一个通用的参数,而不是一个通用的参数,所以你不能'TI
对不起 - 'Add'不是接口的一部分'I'但在不同的类 – 2010-08-15 13:17:19