通用列表方法问题

时间:2010-10-20 08:58:15

标签: c# generics list

当我尝试使用以下签名创建方法时出现错误:

public List<T> CreateList(DataSet dataset)


Error 1 The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?)

有谁知道我做错了什么?

提前致谢!

2 个答案:

答案 0 :(得分:7)

必须在方法级别声明

T

public List<T> CreateList<T>(DataSet dataset)

或在包含类级别:

public class Foo<T>
{
    public List<T> CreateList(DataSet dataset)
    {
        ...
    }
}

但请小心在两个地方声明:

// Don't do this
public class Foo<T>
{
    public List<T> CreateList<T>(DataSet dataset)
    {
        ...
    }
}

答案 1 :(得分:3)

由于您要定义泛型方法,因此类型占位符应该是方法声明的一部分,而不仅仅是其返回类型。尝试:

public List<T> CreateList<T>(DataSet dataset)