私は、コードのこの作品を書いた:.NETリフレクタはヌル合体演算子を正しく反映できませんか?
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));
は、null
でない場合は_queue
の代わりにnew Queue<int>(10)
を返します。
これは.NET Reflector
のバグですか、それとも不足していますか?
private Queue<int> EnsureQueue()
{
return (this._queue ?? (this._queue = new Queue<int>(10)));
}
はにかなりくそ良いルックス:>これはリフレクターの私のコピーは、この方法で作るものです私の答え
??演算子は構文的な砂糖ですが、コンパイラが何を翻訳しているのか見ています。 –
@RonBeyerしかし、出力が正しくないですか? – HerpDerpington
生ILを投稿できますか?反射鏡が翻訳しようとしているものを見れば、おそらくもっとはっきりしているでしょう。通常、私はJetBrains DotPeekがRedgateよりも正確で、Reflectorを無料にしておくと約束した後、Redgateを使用することに反対してから、激しく請求し始めました。 DotPeekは無料です。 –