所以我在这里要做的是将类(A类)的相同副本传递给另一个类(B类),但是B类在A类中实例化.
当我希望能够使用来自A类的第一个实例的变量时,在B类中使用新语句将不起作用,因为它会导致无限循环,以及创建它的新实例.
我知道object.equals()但是在我在类B中定义类A的对象之前我不能使用它.只是使用object.equals会导致null引用.
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().它用于比较两个对象是否相等而不是克隆/传递引用.