2011-09-22 62 views
1

我有1个解决方案,由2个项目组成。 1是Windows应用程序,另一个是类库。在类库中,有一个类是Windows应用程序需要的数据类型的值。我想出了这个,如何从Project2类获取数据类型的值到Project1类? - Visual Studio 2010 C#

//Proj2 
public class class1 
{ 
    bool data1; //supossed to be true but false in default 
    public void method() 
    { 
     if (condition) 
      data1 = true; 
    } 
} 

//Proj1 
public class class2 
{ 
    bool data2; //must be equal to data1 

    public void method() 
    { 
     Proj2.Class1 class1 = new Proj2.Class1(); 
     data2 = class1.data1 
     if (data2 == true) 
      MessageBox.Show(data2.ToString()); 
    } 
} 

的问题是,输出始终显示假,而不是真实的。我敢肯定,100%的条件返回TRUE,因为我测试了它。我认为问题是新的实例,数据类型被重置为默认值,这是错误的。那么我如何获得原始价值。注意:有两个项目。谢谢!

+2

请给*真正的*代码 - 即使它是人为简单的 - 而不是这个伪代码,这并没有真正帮助我们弄清楚发生了什么事情。请阅读http://tinyurl.com/so-hints –

回答

2

它看起来像你缺少调用proj1.class1.method将设置data1true

所以应该

public void method() 
{ 
    Proj2.Class1 class1 = new Proj2.Class1(); 
    class1.method(); 
    data2 = class1.data1; 
    if (data2 == true) 
     MessageBox.Show(data2.ToString()); 
} 

我认为这个问题是新的实例

现在也许你不想每次都打电话给class1.method() Class2.method是ca LLED。如果这是真的,你可能会想看看实施singleton。那么它只是

public void method() 
{ 
    data2 = Proj2.Class1.Instance.data1; 
    if (data2 == true) 
     MessageBox.Show(data2.ToString()); 
} 
相关问题