如何在类之间传递对象

Sha*_*n_U 5 c# object

因此,我要在此处执行的操作是将一个类(class A)的相同副本传递给另一个类(class B),但class B在中实例化class A

当我希望能够使用的第一个实例中的变量时,使用newin中的语句class B将不起作用,因为它将导致无限循环,并会创建该实例的新实例class A

我知道,object.equals()但是直到在中定义class A的对象后,我才能使用它class B。仅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
}
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,我想避免实例化类A的新副本,因为我希望设置类A中的值。

我尝试使用一种方法来做到这一点,但仍然获得空引用。

Rag*_*lly 4

传入A的构造函数B

public class A
{
   private B _b;

   public A()
   {
       _b = new B(this);
   }
}

public class B
{
    private A _a;

    public B(A a)
    {
        _a = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

正如评论中提到的,您完全误解了.Equals()。它用于比较两个对象是否相等,而不是克隆/传递引用。