c#类之间通信的最佳方式

lor*_*ert 9 c#

现在我正在编写一个应用程序,并且我认为必须有一个更好的解决方案来解决我现在正在做的事情.

我有一个主窗口,它将处理程序的设置.然后我有更多的课程和窗口.例如,语言处理程序类和处理"main函数"所需的用户输入的表单.

但是,到现在为止,我总是必须将主窗口传递给每个类,因为语言处理程序应该能够更改主窗口的字符串.另一种形式也应该能够将数据传递给主窗口.

如果我们想象会有更多的类,每类都需要在主窗口的副本,这将消耗大量依赖于主窗口中的"大小"的资源.

那么,这些类之间是否有更好/更有效的通信方式.

k.m*_*k.m 11

常见的方法是使用观察者模式,在.NET中是事件系统.简单地说,您的类订阅彼此的事件并在事件发生时执行操作.正如注释中所指出的,传递引用并不是内存繁重,但它会导致代码的不同部分之间的紧密耦合 - 观察者模式解决了这个问题.