Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中将指针从class1()发送到class2()#_C# - Fatal编程技术网

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

C# 在c中将指针从class1()发送到class2()#,c#,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=nu

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

您已经创建了两个单独的
节点
类,而您应该只有一个。有两个不同的类,具有相同的名称和相同的成员,但定义在两个不同的位置,会导致两种不同的类型,并且这些类型是不可互换的

您应该在一个位置定义一个
节点
类,并引用其他两个类

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

你似乎已经成功地做到了。您已经编写的代码有什么问题?因为您的节点是一个类,所以您已经在向它传递我的引用了。当然,这在您的示例中不起作用,因为节点是在两个不同的区域中定义的,就.NET而言,它们是两个不同的定义并且不兼容:Class1.Node和Class2.Node是不同的。非常感谢您花时间回答我的问题。但我必须更好地问我的问题。