首页 > 解决方案 > 我应该如何将对象的引用传递给同一类的另一个对象?

问题描述

public Class A
{ 
    public string Name { get; set; } 
}

public Class B
{ 
    A obj1 = new A(); 
    obj.Name = "ABCDEFGH";
}

public Class C
{ 
    A obj2 = ...
} 

我应该如何将 obj1 的引用传递给 obj2。这样在这种情况下,像 Name 这样的 obj1 的所有数据也可以在这里访问吗?

标签: c#oop

解决方案


你可以这样做:

public class B
{ 
    A obj1 = new A(); 

    public void Foo()
    {
        A obj1 = new A(); 
        obj1.Name = "ABCDEFGH";

        C c = new C(obj1);
    }
}

public class C
{ 
    A obj2;

    // Constructor is called when created
    public C(A a) => obj2 = a; // obj2 will now have the same reference 
}

这称为依赖注入。new每当我们使用关键字时都会调用构造函数。当我们这样做时,我们必须传递对A.

现在,两者obj2和都obj1指向相同的实例,A如果Name再次更改,则两个类都将观察到该更改。

请记住,所有类实例可能C不共享相同的obj2. 这将取决于它们在构造函数中给出的内容。


推荐阅读