c# – 如何在类之间传递对象

所以我在这里要做的是将类(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().它用于比较两个对象是否相等而不是克隆/传递引用.

点赞