如果我打开一个名为 FormX 的表单,它对其公共(非静态)变量“Var”进行一些处理。“Var”从调用表单中设置并处理并返回以供输出。我在执行过程中多次从多个表单中打开它。所有表格同时运行。它工作得很好,因为每个 FormX 都是使用来自其父窗体的对象的单独实例打开的。但是我的项目中有一个公共静态类“Abc”,所有表单都可以访问它,如果我添加代码:
public static class Abc
{
public static string Open_form(string Var)
{
FormX Obj = new FormX();
Obj.Var = Var;
Obj.Show();
Obj.Process_Var();
Var = Obj.Var;
Obj.Close();
return Var;
}
}
并从表格中的某处(多次)调用它,例如:
Form1_Load()
{
//Some operations
MessageBox.Show(Abc.Open_form("ABC"));
//Some operations
MessageBox.Show(Abc.Open_form("XYZ"));
}
Form2_Load()
{
//Some operations
MessageBox.Show(Abc.Open_form("123"));
//Some operations
MessageBox.Show(Abc.Open_form("456"));
}
Form1 和 Form2 从主窗体打开,如下所示:
Form1 obj1 = new Form1();
obj1.Show();
Form2 obj2 = new Form2();
obj2.Show();
那么会不会有什么问题呢?如果两个表单同时调用静态调用,对变量“Var”的处理会不会有问题?还有一个问题,我应该在WhyFormX.Dispose();
之后打电话FormX.Close();
,为什么不打电话?有什么好处FormX.Dispose()
吗?