什么“??” 在C#中做?
这个问题在这里已经有了答案:
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;
它被称为空coelesce操作符 。 更多信息在这里:http://msdn.microsoft.com/en-us/library/ms173224.aspx
它被称为空合并运算符。 看这里。
这意味着如果stream
为null,它将创建一个新的MemoryStream
对象。