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));始终返回 anew Queue<int>(10)_queue不是null

这是一个错误.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 回答