2

嗨,我仍在学习 C#,并且正在尝试创建一个二叉树遍历算法以用于学习目的。我在 Java 中做了同样的事情,我设法让它工作。我需要知道我是否可以给 Node 的方法 aa 参数.这是我到目前为止所拥有的:

public class Node<T>
{
        public Node<T> Left { get; set; }
        public Node<T> Right { get; set; }
        public T Data { get; set; }
}



public static void InOrder(Node<T> n)
        {
        }

问题出在 InOrder 参数上,它告诉我无法传递 Node 的参数,因为它无法解析符号 T。在 Java 中,我使用此语法使其在 Node n 中工作,但似乎 C# 中的语法不同。

如果是这种情况,那么我该如何使用我的当前类 Node 作为类型?

4

3 回答 3

2

将静态方法放在类中Node<T>,它将起作用。在课外,它不知道 T 是什么意思。

于 2013-04-03T17:39:16.180 回答
2

您需要将 a 附加<T>到您的方法名称,因为它在Node类之外。

 public static void InOrder<T>(List<T> n)
 {
 }
于 2013-04-03T17:39:56.600 回答
1

您的方法需要 T 类型,如下所示:

public class Node<T>
{
    public Node<T> Left { get; set; }
    public Node<T> Right { get; set; }
    public T Data { get; set; }
}

public static void InOrder<T>(Node<T> n)
{
}
于 2013-04-03T17:41:04.417 回答