我有1个解决方案,包含2个项目。 1是Windows应用程序,另一个是类库。在类库中,有一个类,Windows应用程序需要其数据类型的值。我想出了这个,
//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());
}
}
问题是,输出始终显示False而不是true。我确信100%条件返回TRUE因为我测试了它。我认为问题是新实例,数据类型重置为默认值为false。那么我如何获得原始价值。注意:有两个项目。谢谢!
答案 0 :(得分:2)
您似乎错过了将proj1.class1.method
设置为data1
true
来电
所以它应该是
public void method()
{
Proj2.Class1 class1 = new Proj2.Class1();
class1.method();
data2 = class1.data1;
if (data2 == true)
MessageBox.Show(data2.ToString());
}
我认为问题是新实例
现在也许你不想每次调用Class2.method时调用class1.method()
。如果这是真的,你可能想看看实现singleton。那就是
public void method()
{
data2 = Proj2.Class1.Instance.data1;
if (data2 == true)
MessageBox.Show(data2.ToString());
}