C# 在c中将指针从class1()发送到class2()#
我有一个类,并在其中创建了一个节点。我想将该节点的地址发送到c#中class2()中的一个函数。 Class1()中的类节点与Class2()中的类节点不同。我想知道Class2()中的节点指向Class1()中的节点。 请帮忙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
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是不同的。非常感谢您花时间回答我的问题。但我必须更好地问我的问题。