首先是一个问题。 我正在尝试使用字段的类型来实例化一个泛型类。
public class ValueRange<type1>
{
type1 min;
type1 max;
}
void foo()
{
int k;
ValueRange<k.GetType()> range;
}
这行代码不起作用。有什么建议吗?
提前谢谢。
Type genericType = typeof(ValueRange<>).MakeGenericType(k.GetType());
Activator.CreateInstance(genericType);
ValueRange<int> range;
你可以在运行时实例化类型,但你不能像你现在这样声明变量。
Type genericType = typeof(ValueRange<>).MakeGenericType(k.GetType());
object instance = Activator.CreateInstance(genericType);
.NET 4.0 在泛型类型的协变和逆变方面有了新规则。这将有助于更强类型化您的变量。
编辑:为了可读性,已更改示例代码以使用辅助变量genericType
。
int k;
ValueType m;