c# - 我们如何为窗口创建单例实例?

标签 c# wpf c#-4.0 singleton

我搜索过为 WPF 中的窗口创建单例对象。

public static Test DefInstance
{
    get
    {
        if (formDefInstance == null)  // formDefInstance.IsDisposed
        {
            initializingDefInstance = true;
            formDefInstance = new cas18();
            initializingDefInstance = false;
        }
        return formDefInstance;
    }
    set { formDefInstance = value; }
}

但是 forDefInstance.IsDisposed 不工作并抛出错误。

对此有什么想法吗?

最佳答案

我认为每个人都应该看看 Jon Skeet 的 C# In Depth 站点。如果只是为了阅读并在他们的大脑中永久铭记单例模式 a-la C#。

http://csharpindepth.com/Articles/General/Singleton.aspx

在你的场景中,尝试实现这个(线程安全,非惰性):

public sealed class DefInstance
{
  private static readonly DefInstance instance = new DefInstance();
  static DefInstance()
  {
  }

  private DefInstance()
  {
  }

  public static DefInstance Instance
  {
    get
    {
      return instance;
    }
   }
} 

还有Lazy<T>该站点中该模式的实现和各种其他实现。

关于c# - 我们如何为窗口创建单例实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16056161/

相关文章:

c#-4.0 - Azure 上的 Hadoop C#同位素

c# - 大对象堆中的大字符串会导致问题——但在任何情况下它都必须以字符串结束

c# - 来自异步序列化操作的 MissingMethodException

c# - 安装 CORS 时出现 TypeInitializationException

c# - WCF 的凭证委托(delegate)问题

c# - InvalidOperationException - TwoWay 或 OneWayToSource 绑定(bind)无法对只读属性起作用

c# - 为什么我必须使用 UIElement.UpdateLayout?

wpf - WPF/Prism 应用程序初始化完成后的事件

c# - 从网站保存网络摄像头图像

c# - ASP.net MVC 4 显示图像