0

我有一个关于 2 个单独的类实例如何知道每个实例的问题。

假设我有一个空的控制台应用程序,并且在 2 个单独的命名空间中添加了 2 个类。

每个类的细节并不重要,所以请考虑我的控制台应用程序中的这个非常简单的代码。

public static void Main(string[] args)
{
    Namespace1.ClassName = c = new Namespace1.ClassName();
    Namespace2.ClassName2 = c2 = new Namespace2.ClassName2();
}

现在,除非我将实例传递给(例如)我的 ClassName2 的构造函数,否则c2将不知道cEG

Namespace2.ClassName2 = c2 = new Namespace2.ClassName2(c);

有没有其他方法可以c2cc作为参数传递或设置为c2.

我认为不是,但我错了很多次,我只是在澄清之后。我主要寻找一个简单的是或否的答案,但也感谢任何其他细节。

4

2 回答 2

1

我认为除了构造函数参数之外,您可以这样做的唯一方法是在其中创建一个属性或一个 setter 函数,ClassName2而不是在创建c2实例后设置它

Namespace2.ClassName2 c2 = new Namespace2.ClassName2();
c2.SetC(c);

理论上你也可以使类ClassName静态,但这不是一个好主意

于 2013-03-01T14:09:04.747 回答
1

您可以使用public static属性,例如,如果您的主要方法在一个Namespace3.Program类中,您可以将其声明为:

// namespace3
public class Program {
     public static Namespace1.Classname c {get;set;}

     public static void Main(string[] args)
     {
        Pragram.c = new Namespace1.ClassName();
        Namespace2.ClassName2 c2 = new namespace2.ClassName2();
     }
} 

然后在 ClassName2 方法调用中

namespace3.Program.c
于 2013-03-01T14:14:25.710 回答