什么“??” 在C#中做?

这个问题在这里已经有了答案:

  • C#中两个问号在一起意味着什么? 16个答案

  • 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对象。

    链接地址: http://www.djcxy.com/p/53841.html

    上一篇: What does "??" do in C#?

    下一篇: What is ?? in my Property?