5

私はこのコードを書きました:

private Queue<int> EnsureQueue()
{
    return _queue ?? (_queue = new Queue<int>(10));
}

そしてリフレクターは私に与えます:

private Queue<int> EnsureQueue()
{
    if (this._queue == null)
    {
    }
    return (this._queue = new Queue<int>(10));
}

明らかに、これは元のコードが言っていることではありません。その行は、そうでない場合ではなく、(this._queue = new Queue<int>(10));常に a を返します。new Queue<int>(10)_queuenull

これは のバグですか、.NET Reflectorそれとも何か不足していますか? プログラムは正しく動作しているようです...

編集 - >私の答えを見てください

4

1 に答える 1

3

これは、Reflector の私のコピーがこのメソッドで作成したものです。

private Queue<int> EnsureQueue()
{
    return (this._queue ?? (this._queue = new Queue<int>(10)));
}

私にはかなり良く見えます。バージョン 8.5.0.179。必ず更新してください。

于 2015-09-12T15:21:48.903 に答える