GetInstance<;T>;()';无法根据用法推断.请尝试显式指定类型参数
本文关键字:类型参数 用法 gt lt GetInstance | 更新日期: 2023-09-27 18:27:40
我已经创建了一个动态方法来创建不同类型的实例,但不确定为什么它在编译时会出现上述错误,我还必须再次将返回值强制转换为指定类型吗?
internal static T GetInstance<T>()
{
dynamic obj = Activator.CreateInstance(typeof(T));
return obj;
}
private Foo f = GetInstance<Foo>();
为什么不直接使用MSDN推荐的内容呢
internal static T GetInstance<T>() where T:new()
{
return new T();
}
http://msdn.microsoft.com/en-us/library/0hcyx2kd.aspx
编辑:
不过,我不明白你为什么要用这种方法?
您可以不调用var x = GetInstance<Foo>();
,而只调用var x = new Foo();
,因为如果您想用Foo
作为类型参数来调用GetInstance<T>()
(或者我遗漏了什么?),Foo必须具有无参数构造函数。