在c#中,它是什么意思'??'?

时间:2014-01-14 03:53:58

标签: c# symbols

**请停止投入此问题。我真的不知道该搜索什么。我试过使用像'C#??'这样的关键字并尝试了'qeustion的标题''它的内容是什么,但“可能已有答案的问题”框中没有任何问题。

public ICommand _command;
public ICommand Command
{
    get
    {
        return _command ?? (_command = new MvxCommand(AddItem));
    }
}

我发现我喜欢那些代码。但我真的不知道它是什么意思?

另外,如果我想在msdn中搜索一下,我应该使用什么关键字?

3 个答案:

答案 0 :(得分:4)

它被称为Null合并运算符

如果第一部分为null,则使用下一部分,如果_command为空,则会创建一个新的command,否则只会使用_command

答案 1 :(得分:1)

它是Null合并运算符。这意味着如果它有一个值使用它,如果不使用下一个项目。

对于可空类型和对象非常有用。

int? age = null; 

var defaultAge = age ?? 21;
//defaultAge is now 21

http://msdn.microsoft.com/en-us/library/ms173224.aspx

答案 2 :(得分:-1)

Null Coalesce运算符。功能就像TSQL中的“IsNull”一样。如果左侧值不为null,请使用它。否则,请使用正确的值。