2013-03-01 51 views
0

我有一个关于2个独立类的实例如何知道每个类的问题。当引用一个对象时,它是否总是作为参数传递

让我们假设我有一个空的控制台应用程序,我已经在2个独立的命名空间中添加了2个类。

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

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

,除非我通过一个实例来(例如)我ClassName2的构造函数,然后c2将有c EG

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

没有知识是有c2有知识的任何其他方式c而不是c作为参数传递或设置为c2的属性。

我假设没有,但我已经错了很多次,我只是在澄清后。我主要是在寻找一个简单的答案或答案,但其他任何细节也是值得赞赏的。

回答

1

我认为,除了构造函数的参数,你可以做到这一点的唯一方法是在ClassName2创建一个属性或setter函数,比设置你创建c2例如

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

后,从理论上讲,你还可以使类ClassName静态的,但它不是一个好主意

+0

我认为这是事实,但是我已经错了很多次这样得到的保证是好的(我不与任何其他开发商这样的学习是工作硬)。谢谢你,这太棒了 – Dave 2013-03-01 14:09:51

+0

@DaveRook欢迎你:) – VladL 2013-03-01 14:11:45

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 
相关问题