class GenericWrapper<T>
{
}
class WrapperInstance : GenericWrapper<string>
{
}
class Usage
{
public static Usage Create<T1, T2> (T2 t2) where T1 : GenericWrapper<T2>
{
return null;
}
}
...
// works
Usage.Create<WrapperInstance, string>("bar");
// doesnt work
Usage.Create<WrapperInstance>("bar");
我怀疑答案是否定的,但是有没有办法让最后一行编译通过呢?
我希望编译器强制我提供一个字符串参数,而不需要知道或先去检查 WrapperInstance 来查看 GenericWrapper 的 T 实现。
我知道我可以通过使用第一种方法或者使用 object 作为参数并进行运行时检查来使其编译通过,但这不是问题的关键;) 我很大程度上怀疑这是我的唯一两个选择。
谢谢