【发布时间】:2011-04-13 21:57:24
【问题描述】:
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 作为参数并进行运行时检查来编译它,但这不是问题;)我很大程度上怀疑这是我仅有的两个选择。
谢谢
【问题讨论】:
-
由于 C# 的限制,它不会工作。但是,如果您详细说明要归档的内容,则可能有更好的方法将其写下来。 ;-)