古いフォーマットから新しいフォーマットへの「移行」を行う機能があります。これはオブジェクトのコンストラクターで発生する必要がありますが、引数が必要なため静的コンストラクターでは発生しません。コードを1回だけ実行するにはどうすればよいですか?
いくつかのコンテキストの場合:
class Foo
{
public Foo(string bar)
{
ShouldOnlyExecuteOnce(bar);
}
}
そして、使用法は(各行で異なるスレッドで)可能性があります
var f = new Foo("bar");
var fb = new Foo("meh");
etc
ShouldOnlyExecuteOnce
「 」メソッドを適切に保護するにはどうすればよいですか?
これは一種の「移行」タイプの関数であるため、作成された最初のオブジェクトを「勝ち」、古いデータをこの新しいオブジェクトに移行する必要があります。後で構築されるオブジェクトは、引数が異なっていても、この関数を実行しようとしないでください。