我在项目中发现了这个新的有趣的代码。它做了什么,它是如何工作的?
MemoryStream stream = null;
MemoryStream st = stream ?? new MemoryStream();
答案 0 :(得分:8)
A ?? B
是
的简写if (A == null)
B
else
A
或更准确地说
A == null ? B : A
所以在最详细的扩展中,您的代码等同于:
MemoryStream st;
if(stream == null)
st = new MemoryStream();
else
st = stream;
答案 1 :(得分:1)
基本上这意味着如果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
答案 2 :(得分:0)
它被称为null coalesce运算符。请参阅here。
这意味着如果stream
为null,它将创建一个新的MemoryStream
对象。