首页 > 解决方案 > 泛型类不打印第二个参数

问题描述

我创建了一个通用类这是我的代码

using System;

public class Node<T>
{
    T data;
    Node<T> link;

    public Node(T data, Node<T> link)
    {
        this.data = data;
        this.link = link;
    }

    public void Write()
    {
        Console.WriteLine("Data : " + this.data , this.link);
    }
}

class Program
{
    static void Main()
    {
        Node<string> node1 = new Node<string>("Some", null);
        Node<string> node2 = new Node<string>("Thing", node1);

        node1.Write();
        node2.Write();
        //to write on the console
        Console.ReadKey();
    }
}

我只是很困惑,或者我的语法真的错了。请告诉我

所以我写了

node1.Write()
node2.Write()

输出应该是

节点1

一些

节点2

一些东西

我是对还是错??请赐教。

标签: c#.net

解决方案


HimBromBeere 不使用递归或覆盖该方法的答案的替代ToString方法是将您的Write函数更改为:

public void Write()
{
    Console.Write("Data: ");
    Console.Write($"{data}");

    var next = link;
    while(next != null)
    {
        Console.Write($", {link.data}");
        next = next.link;
    }
}

推荐阅读