我正在使用.net framework 4.0
我想在非泛型类中创建泛型方法
但它给了我时间错误
错误:类型或命名空间名称' T'找不到(你错过了使用指令或汇编引用吗?)
public class BlIAllClass
{
public static List<T> xyz()
{
List<T> cc = new List<T>();
return cc;
}
}
还有一个问题由 John Paul Jones 提出
Generic Method in non generic class
在那里他提到可以在非泛型类中创建泛型方法
然后我的代码出了什么问题。
它是与框架版本相关的问题还是我错过了什么
答案 0 :(得分:6)
您的方法不是通用的。 generic method是使用 type parameters 声明的方法。
将您的方法更改为:
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}
您也可以将方法实现更改为:return new List<T>();
答案 1 :(得分:3)
您需要在方法名称中指定泛型类型<T>
,如下所示:
public class BlIAllClass
{
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}
}
答案 2 :(得分:0)
您需要将泛型类型参数添加到方法签名中。
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}
答案 3 :(得分:0)
是,您可以在两个级别应用泛型类型。您可以在方法级别和类级别上应用泛型类型(两者都是可选的)。如上例所示,您在方法级别应用泛型类型,因此,您还必须在方法返回类型和方法名称上应用泛型。
您需要更改一些代码。见以下。
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}