怠zyな初期化にヌルコーテルオペレーターを使用しない正当な理由はありますか?

StackOverflow https://stackoverflow.com/questions/7408781

質問

ご挨拶私は今日いくつかの怠zyな初期化コードを行っていましたが、これを行うためにヌルコーテルオペレーターを使用してみませんか?

以下は、怠zyな初期化に使用されるより一般的な形式を示す単純化されたサンプルコードであり、次にヌルコーールスする演算子を使用しているものを示しています。それらはまったく同じ結果を持ち、同等のように見えます。私の最初の考えは、オブジェクトが作成された後、それ自体に追加の割り当てがあることです。 ??. 。これは問題ではなく、コンパイラ/jitがこれを最適化しますか? ??, 、またはそれは完全に安全であり、悪いモジョから来ることはできません。

private MyLazyObject _lazyObject;

public MyLazyObject GetMyLazyObjectUsingMoreCommonMethod()
{
    if (_lazyObject != null)
        return _lazyObject;

    _lazyObject = new MyLazyObject();

    return _lazyObject;
}

public MyLazyObject GetMyLazyObjectUsingNullCoalescingOpMethod()
{
    _lazyObject = _lazyObject ?? new MyLazyObject();
    return _lazyObject;
}

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top