我有一个类并在其中创建了一个节点。我想将节点的地址发送到c#中class2()中的函数。 Class1()中的类节点与Class2()中的类节点不同。我希望Class2()中的节点指向Class1()中的节点。 请帮忙。
public class Class1()
{
public class Node
{
public int x=0, y=0, cost=0;
public Node up=null, left=null, down=null, right=null, parent=null;
}
private Node root=null;
class2 p=new class2();
public void function1()
{
var tree = new Node();
root = tree;
p.function2(root);
}
}
///////////////////////////////////
public class Class2()
{
public class Node
{
public object NodeContent;
public Node Next;
}
public void function2(root)
{
..............................
}
}
答案 0 :(得分:6)
如果只有一个类,您已经创建了两个单独的Node
类。具有两个不同的类,具有相同的名称和相同的成员,但在两个不同的地方定义,导致两种不同的类型,并且这些类型是不可互换的。
您应该有一个 Node
类,您可以在一个位置定义,并从其他两个类中引用。
public class Node
{
public object NodeContent;
public Node Next;
}
public class Class1
{
Class2 p = new Class2();
private Node root;
public void function1()
{
var tree = new Node();
root = tree;
p.function2(root);
}
}
public class Class2
{
public void function2(Node root)
{
}
}