3

我在我的项目中发现了这个新的有趣的代码。它有什么作用,它是如何工作的?

MemoryStream stream = null;
MemoryStream st = stream ?? new MemoryStream();
4

3 回答 3

8
A ?? B

是的简写

if (A == null) 
    B
else 
    A

或更准确地说

A == null ? B : A

所以在最详细的扩展中,您的代码相当于:

MemoryStream st;
if(stream == null)
    st = new MemoryStream();
else
    st = stream;
于 2013-07-31T05:28:09.750 回答
1

基本上这意味着如果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

于 2013-07-31T05:27:31.867 回答
0

它被称为空合并运算符。见这里

这意味着如果stream为null,它将创建一个新MemoryStream对象。

于 2013-07-31T05:28:21.180 回答