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

本文关键字:构造函数 参数 | 更新日期: 2023-09-27 17:58:36

我想知道你能不能帮我弄清楚我做错了什么。我有

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),说

类、结构或接口声明中的令牌"("无效

这里的正确语法是什么?

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

删除泛型类型参数:

public SingleLinkedList (T[] arr)
{
}

类型参数是类声明的一部分,而不是构造函数声明的一部份。构造函数的参数类型将是用于类的类型。

从构造函数中删除类型参数,这意味着:

public SingleLinkedList(T[] arr)
{
}

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

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