在c#中将指针从class1()发送到class2()

时间:2014-05-05 17:50:04

标签: c#

我有一个类并在其中创建了一个节点。我想将节点的地址发送到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)
    {
..............................
    }
}

1 个答案:

答案 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)
    {
    }
}