我们都知道Singleton模式。C#如何实现“单身”的方法
如何实现一个单身“法”? - 一种仅被调用一次的方法,任何其他调用都不会执行任何操作。
我能想到的几种方法(包括懒惰 - 如果(.IsValueCreated){... value.method();}!),但你会如何实现它?
我们都知道Singleton模式。C#如何实现“单身”的方法
如何实现一个单身“法”? - 一种仅被调用一次的方法,任何其他调用都不会执行任何操作。
我能想到的几种方法(包括懒惰 - 如果(.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
..或与表达式..或与codedom! – Sinatr
-1我不明白你的问题是什么。 – TylerD87
在该方法中检查是否等于某个“特定值”,并且只在工作完成后才执行该工作,如果是“某个值”,则在该方法中将其设置为“另一个值”,并确保该值不是在其他地方重新设置为“特定值” – DrCopyPaste
让我们假设该方法来自您无法控制的外部API,但绝不能再次调用:) – Lior