プロジェクトでこの新しい興味深いコードを見つけました。それは何をし、どのように機能しますか?
MemoryStream stream = null;
MemoryStream st = stream ?? new MemoryStream();
A ?? B
の省略形です
if (A == null)
B
else
A
より正確には
A == null ? B : A
したがって、最も冗長な展開では、コードは次のようになります。
MemoryStream st;
if(stream == null)
st = new MemoryStream();
else
st = stream;
基本的には、MemoryStream stream
等しい場合null
、作成することを意味しますMemoryStream st = new MemoryStream();
したがって、この場合は次のようになります。
MemoryStream st = stream ?? new MemoryStream();
意味
MemoryStream st;
if (stream == null)
st = new MemoryStream();
else
st = stream;
これはnull coelesce operatorと呼ばれます。詳細はこちら: http://msdn.microsoft.com/en-us/library/ms173224.aspx
これは null 合体演算子と呼ばれます。ここを参照してください。
stream
null の場合、新しいMemoryStream
オブジェクトを作成することを意味します。