Vb.net 用于表单之间数据交换的全局变量

Vb.net 用于表单之间数据交换的全局变量,vb.net,oop,scope,Vb.net,Oop,Scope,在VB(.NET)应用程序中使用全局变量以在表单之间交换数据是否是一种良好的做法 作为全局变量,我指的是在模块中定义的公共变量,而不是类的公共成员或属性。 此外,作为我的个人规则,我从不从类访问全局变量,而是通过函数将值传递给类 我知道,我不是全局变量及其滥用的朋友,但在表单数据交换中,它们似乎是生成简单/清晰代码的唯一方法 例1: 我的应用程序是用命令行参数启动的。 我需要以所有形式访问这些参数:我只需读取并验证MDI load事件中的参数,然后将它们存储在全局变量中。因此,我可以用一种非常简

在VB(.NET)应用程序中使用全局变量以在表单之间交换数据是否是一种良好的做法

作为全局变量,我指的是在模块中定义的公共变量,而不是类的公共成员或属性。 此外,作为我的个人规则,我从不从类访问全局变量,而是通过函数将值传递给类

我知道,我不是全局变量及其滥用的朋友,但在表单数据交换中,它们似乎是生成简单/清晰代码的唯一方法

例1: 我的应用程序是用命令行参数启动的。 我需要以所有形式访问这些参数:我只需读取并验证MDI load事件中的参数,然后将它们存储在全局变量中。因此,我可以用一种非常简单的方式从我所有的表格中读取这些值

例2: 我正在开发一个程序,用事件日志协议(如Windows事件日志)编写应用程序的事件。 我编写了EventLog类,该类处理事件日志的添加、显示、保存和排序。 然后我将全局变量gEventLog作为类EventLog的istance放入一个模块中,并在加载MDI表单时创建该对象。 这样,我就有了一个全局变量,可以处理程序中每个表单(MDI和子表单)的事件日志。 另一方面,我可以创建EventLog作为我的MDI表单的公共成员或属性,它应该是相同的

我已经找到并阅读了一些讨论,但更多的是针对C编程或基本讨论问题,如:

关于这一点:

关于表单之间(而不是类和程序的其他组件之间)数据交换的特殊情况有何建议?
谢谢。

使用IoC容器怎么样


永远不要读关于国际奥委会的书。。。我刚刚做了第一次,谢谢:-)但国际奥委会将意味着重新设计我所有的项目。IoC是一种有趣的方法,但我认为必须从头开始……当然需要重构,但这不是你要就表单间数据交换的具体情况提出任何建议的问题。您还可以使用ServiceLocator:。通过这种方式,您可以封装您的命令行并登录到您的表单能够使用的服务中。