在 MonoMac 中使用 Mono 时的全局对象

发布于 2024-12-06 11:01:26 字数 428 浏览 1 评论 0原文

如何声明对象的全局实例?

当使用 C# 和 .NET 时,我会这样做:

public static program {
  public static Foo MyFoo = new Foo();

  static void main() {
    MainForm = new MainForm(MyFoo);
  }
}

然而,对于 Mono/MonoMac,主函数调用 NSApplication.Main 并且不直接创建任何窗口。如何将 MyFoo 的实例传递到主窗口?

注意:我试图避免在我的窗口/窗口控制器中引用 MainClass,因为这会产生紧密耦合。我想在其他情况下重用窗口类,因此需要松散耦合。

MonoMac 可以实现我想要的功能吗?

谢谢,安迪

How do I declare global instances of objects?

When using C# and .NET I would do something like this:

public static program {
  public static Foo MyFoo = new Foo();

  static void main() {
    MainForm = new MainForm(MyFoo);
  }
}

however with Mono/MonoMac the main function calls NSApplication.Main and doesn't directly create any windows. How would I pass an instance of MyFoo to the main window?

Note: I am trying to avoid any references to MainClass in my windows/window controllers as that creates a tight coupling. I want to reuse the window classes in other situations hence the desire for loose coupling.

Is what I want possible with MonoMac?

thanks, Andy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

红颜悴 2024-12-13 11:01:26

使用 单例 ?您的代码将如下所示:

 public class Foo {
    public static Foo Global = new Foo ();
    public Foo () { }
    // rest of Foo logic
 }

 public class Program {
   static void Main () {
      MainForm = new MainForm (Foo.Global);
   }
 }

Use a singleton ? Your code would then look like:

 public class Foo {
    public static Foo Global = new Foo ();
    public Foo () { }
    // rest of Foo logic
 }

 public class Program {
   static void Main () {
      MainForm = new MainForm (Foo.Global);
   }
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文