如何为参数化类编写构造函数

时间:2016-07-25 00:43:21

标签: c# .net oop

我想知道你是否可以帮助我弄清楚我在这里做错了什么。我有

public class SingleLinkedList<T> where T : IComparable
{
    private class Node
    {
        public T Val;
        public Node Next;
    }

    private Node _root = null; 

    /// <summary>
    ///  Initialize list from array
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public SingleLinkedList<T> (T[] arr)
    {

    }

    // ...

}

我的编译器不喜欢(T[] arr)并且正在说

  

无效的令牌'('在类,结构或接口声明中

这里的语法是什么?

3 个答案:

答案 0 :(得分:2)

删除泛型类型参数:

public SingleLinkedList (T[] arr)
{

}

type参数是类声明的一部分,不是构造函数声明的一部分。构造函数的参数类型将是该类使用的类型。

答案 1 :(得分:1)

从构造函数中删除type参数,暗示:

public SingleLinkedList(T[] arr)
{
}

答案 2 :(得分:1)

您不应该将<T>添加到构造函数定义中。

/// <summary>
///  Initialize list from array
/// </summary>
/// <typeparam name="T"></typeparam>
public SingleLinkedList(T[] arr)
{

}