非泛型类中的泛型方法

Co.*_*den 3 .net c# generics .net-4.0

我正在使用.net framework 4.0
我想在非泛型类中创建一个泛型方法,但它给了我一个comile time错误

错误:找不到类型或命名空间名称"T"(您是否缺少using指令或程序集引用?)

  public class BlIAllClass
    {
        public static List<T> xyz()
        {
            List<T> cc = new List<T>();
            return cc;
        }
    }
Run Code Online (Sandbox Code Playgroud)

John Paul Jones 通用方法在非泛型类中
也提出了一个问题.他提到可以在非泛型类中创建泛型方法.
然后我的代码出了什么问题.
是框架版本相关的问题还是我遗漏了一些东西

Far*_*yev 8

你的方法不是通用的.甲通用方法是声明与方法类型参数.

将您的方法更改为:

public static List<T> xyz<T>()
{
    List<T> cc = new List<T>();
    return cc;
}
Run Code Online (Sandbox Code Playgroud)

您也可以将方法实现更改为: return new List<T>();


Ser*_*nov 7

您需要<T>在方法名称本身中指定泛型类型,如下所示:

public class BlIAllClass
{
    public static List<T> xyz<T>()
    {
        List<T> cc = new List<T>();
        return cc;
    }
}
Run Code Online (Sandbox Code Playgroud)