我如何创建全局变量,如果我有一个MDIParent
本文关键字:如果 有一个 MDIParent 全局变量 创建 何创建 | 更新日期: 2023-09-27 17:51:10
我正在尝试开发一个应用程序,我有一个MDIParent
和几个MDIchilds
。我想在我的MDIParent
上创建一个全局变量,我希望这个变量可以从它的子变量访问。
我该怎么做??
如果Matthew Watson的答案不是你想要的……
如果你只是想让你的"全局"变量可以被特定MDI父窗体的子窗体访问,那么只需要在它上面使用一个常规的实例属性。子节点将能够通过child.MdiParent.MyVariable
访问它(在将MdiParent
转换为适当的类型之后)。例如:
class ParentForm
{
public int MyVariable
{
return 1;
}
}
class ChildForm
{
public void MyMethod()
{
var parent = this.MdiParent as ParentForm;
foo = parent.MyVariable;
}
}
快速提示:通常最好尽可能避免使用"全局"变量(即静态字段/属性)。将程序状态的所有不同部分限制在适当的上下文中,以减少耦合。参见得墨忒耳定律
c#中的全局变量实际上是一个静态字段或属性。
那么就给MDIParent:
添加一个公共静态属性public static int MyGlobalInt
{
get
{
return 42;
}
}
将被MDIParent的所有实例共享。如果这不是你想要的,那么它就不是你想要的全局变量。