什么是“_instance = this;”意思?

时间:2011-09-16 18:15:19

标签: c#

我正在接管一个c#windows项目。在启动对象app()中,有_instance = this;。这是什么意思?它只是一个实例,可以用于其他方法,如关机等?这是强迫单身人士的事吗?如果是,它如何强制只有一个实例?

_instance定义如下:

private static App _instance;

源代码在这里:

public partial class App : Application
{
    private static App _instance;

    private SplashView _splashView;

    public App()
    {
        if (!NetworkConnectivityManager.CheckConnectivity())
        {
            Shutdown();
            return;
        }

        try
        {
            try
            {
                AppServiceManager.Start();
            }
            catch
            {
                Retryer.DoWithRetries(delegate()
                {
                    ActivateOtherInstance();
                    Shutdown();
                    return;
                }, 4, 1000);
            }

            ShowSplashScreen();
            ShutdownMode = ShutdownMode.OnExplicitShutdown;
            _instance = this;
            ExceptionManager.SubscribeToUnhandledAppDomainException();
        }
        catch (Exception ex)
        {
            ExceptionManager.HandleException(ex);
        }
    }

    public static void ShutdownApp()
    {
        _instance.Shutdown();
    }

如果他们足以告诉我们,请告诉我。非常感谢。

2 个答案:

答案 0 :(得分:3)

如果你问如何在C#中创建一个单例单词

class A
{
   private static readonly A _instance = new A();
   public virtual A instance 
   { 
        get
        {
             return _instance;
        }
   }
   private A()
   {
   }
}

这是在C#中制作单例的典型方法。

对于您的代码,它取决于如何使用它。对于单身人士来说,这没有任何意义。

好的,我读了你的代码。

这只是一个糟糕的设计。它用于调用shutdown而不具有指向类实例的指针。

如果你碰巧在其他地方新上了这个课程,调用App.Shutdown将不会关闭所有应用程序。

如果您只创建一个App类,请使用适当的单例重写它。如果您同时运行多个App实例,请使用适当的实例管理器重写它。

答案 1 :(得分:0)

在某个类中没有其他逻辑,这种变量声明是多余的,也是不必要的,因为任何其他方法(如shutdown)都可以轻松引用this

相关问题