所以我在这里要做的是将一个类 (class A
) 的相同副本传递给另一个类 (class B
),但是 B类
在A类
中实例化。
在 class B
中使用 new
语句将不起作用,因为它会导致无限循环,并在我想要时创建它的新实例能够使用来自 class A
的第一个实例的变量。
我知道 object.equals()
但我不能使用它直到我在 class B
中定义 class A
的对象>。仅使用 object.equals
会导致空引用。
public partial class class_A : Form
{
public class_B _class_B = new class_B;
public Int32 var;
private void setclassA()
{
_class_B._class_A.equals(this);
}
}
public class class_B
{
public class_A _class_A; // I know this is null
// code
}
就像我说的那样,我想避免实例化 A 类的新副本,因为我希望设置 A 类中的值。
我已经尝试使用一种方法来完成它,但仍然得到空引用。
最佳答案
在B
的构造函数中传递A
:
public class A
{
private B _b;
public A()
{
_b = new B(this);
}
}
public class B
{
private A _a;
public B(A a)
{
_a = a;
}
}
如评论中所述,您完全误解了 .Equals()
。它用于比较两个对象是否相等而不是克隆/传递引用。
关于c# - 如何在类之间传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30066433/