非泛型类中的泛型方法
本文关键字:泛型方法 泛型类 | 更新日期: 2023-09-27 17:49:44
我使用的是。net framework 4.0
我想在非泛型类中创建一个泛型方法但是它给了我编译时的错误
错误:类型或命名空间名称'T'无法找到(您是否缺少using指令或程序集引用?)
public class BlIAllClass
{
public static List<T> xyz()
{
List<T> cc = new List<T>();
return cc;
}
}
John Paul Jones也问了一个问题非泛型类中的泛型方法他提到在非泛型类中创建泛型方法是可能的。
那我的代码有什么问题?
是框架版本相关的问题还是我错过了一些
你的方法不是通用的。泛型方法是用类型参数声明的方法。
将方法改为:
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}
也可以将方法实现更改为:return new List<T>();
您需要在方法名称本身中指定泛型类型<T>
,如下所示:
public class BlIAllClass
{
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}
}
是的,有两个级别可以应用泛型类型。您可以在方法级别和类级别应用泛型类型(两者都是可选的)。就像上面的例子一样,你在方法级别应用了泛型类型,所以你必须在方法返回类型和方法名上也应用泛型。
你需要修改一些代码。看到后。
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}
您需要将泛型类型参数添加到方法签名中。
public static List<T> xyz<T>()
{
List<T> cc = new List<T>();
return cc;
}