Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C“如何实施”;“单身人士”;方法_C#_Singleton - Fatal编程技术网

C# C“如何实施”;“单身人士”;方法

C# C“如何实施”;“单身人士”;方法,c#,singleton,C#,Singleton,我们都知道单身模式 如何实现单例“方法”?-只调用一次而任何其他调用都不起作用的方法 我可以考虑几种方法(包括Lazy-if(!.IsValueCreated){…value.method();}),但是您将如何实现它呢?我不这么认为有类似于单例方法的东西 如果您希望您的方法只执行代码块一次,那么您可以这样做。这可以通过几种方式实现,其中一种方式如下: public class Foo { private static bool _isInitialied;

我们都知道单身模式

如何实现单例“方法”?-只调用一次而任何其他调用都不起作用的方法


我可以考虑几种方法(包括Lazy-if(!.IsValueCreated){…value.method();}),但是您将如何实现它呢?

我不这么认为有类似于单例方法的东西

如果您希望您的方法只执行代码块一次,那么您可以这样做。这可以通过几种方式实现,其中一种方式如下:

   public class Foo
    {
      private static bool _isInitialied;


      public void Initialize()
      {
        if(_isInitialied) 
            return;
        //TODO: Initialization stups.
        _isInitialied = true;
      }
    }

您可以通过以下操作实现这一点:

public class Test
{
    private Action _action;

    private void DoSomething()
    { 
        // Do something interesting
        _action = DoNothing;
    }

    private void DoNothing()
    {
    }

    public Test()
    {
        _action = DoSomething;
    }

    public void Call()
    {
        _action();
    }
} // eo class Test

-1我不明白你的问题是什么。检查该方法中的某个
特定值是否相等,并且仅在该
特定值
的情况下进行工作,完成工作后,在该方法中将其设置为
另一个值
,并确保该值不会再次重置为
特定值
,否则让我们假设该方法来自无法控制但不得再次调用的外部API:)您可以始终将该
外部API方法
包装到您的拥有,这样你才能重新获得控制;)@格泽尼奥是真的,但从来没有人声称是真的,事实并非如此。我只是想看看人们能想出什么解决办法:)