比如总共有一个FORM1窗体,一个TEST类,一个FORM2窗体;
问题是这样的,我单击Form1中一个按钮,使TEST类中的一个字段的属性发生改变
比如TEST中的int a = 50;
然后在FORM2中实例化TEST对象T,MSBOX输出T.a.tostring();
为什么输出的是0啊?而不是50;
比如总共有一个FORM1窗体,一个TEST类,一个FORM2窗体;
问题是这样的,我单击Form1中一个按钮,使TEST类中的一个字段的属性发生改变
比如TEST中的int a = 50;
然后在FORM2中实例化TEST对象T,MSBOX输出T.a.tostring();
为什么输出的是0啊?而不是50;
实例化了,当然是0了;
想传数据的话用静态字段;
在TEST类中:
public static int a;
只要实例化,就创建了该类的一个新的对象。
当然了,你分别在Form1 和Form2 中 new 了Test的对象,比如 t1 和 t2, 那么 t1 和 t2 都有一个Test的副本。 改变 t1.a 的值并不会影响到 t2.a 的值。
你应该把Test中的 a 定义为:public static int a = 0;
在Form1 中,使用Test.a = 50;
在Form2 中,使用MessageBox.Show(Test.a.ToString());