您好我还在学习C#并且正在尝试创建一个二叉树遍历的算法用于学习目的。我在Java中做了同样的事情,我设法让它工作。我需要知道我是否可以给出一个方法aa Node的参数。这是我到目前为止所做的:
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的参数,因为它无法解析symbole T.In Java我使用这种语法使它工作在Node n但是看起来C#中的语法不同
如果是这种情况,那么如何将我的curent类Node用作类型?
答案 0 :(得分:2)
将静态方法放在类Node<T>
中,它会起作用。在课外,它不知道T的意思。
答案 1 :(得分:2)
您需要在方法名称后添加<T>
,因为它位于Node
类之外。
public static void InOrder<T>(List<T> n)
{
}
答案 2 :(得分: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)
{
}