我想用模板函数实现一个接口。实现的类也是模板类。我想确保已实现函数的模板参数与类
的模板参数相同public interface A
{
T SetValue<T>(T v);
}
public class B<ValType> : A
{
ValType val;
public T SetValue<T>(T v)
{
val = v;
}
}
&#34; val&#34;的价值应该只在T == ValType时设置,有没有办法在编译时这样做。
答案 0 :(得分:0)
一个选项:将类型提升到界面:
interface A<T>
{
T SetValue(T v);
}
然后实现提供类型的接口:
class B<ValType> : A<ValType>
{
public ValType SetValue(ValType v)
{
return v;
}
}
请注意,从这一点开始,界面将被其封闭的通用类型使用:
A<int> ia = GetB(); // whatever.