1

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

使用 C# 和 .NET 时,我会执行以下操作:

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

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

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

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

我想用 MonoMac 实现吗?

谢谢,安迪

4

1 回答 1

0

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

 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);
   }
 }
于 2011-09-25T14:44:33.930 回答