什么是运营商“?。”?

时间:2015-05-19 11:20:51

标签: c# c#-6.0

我参加过一个会议,演讲者的例子有'?'。运营商。 它是什么?

类似的代码:

var result = man?.Name;

2 个答案:

答案 0 :(得分:5)

这是c#6.0语法,Null传播运算符。这意味着:

var p = man;

if(p != null)
{
   var result = man.Name;
}
else
{
   var result = null;
}

此处有更多信息:https://msdn.microsoft.com/en-us/magazine/dn802602.aspx

答案 1 :(得分:5)

在C#-6.0版本中称为Null-propagating operator

var result = man?.Name;

等于

var temp = man;
var result = (temp != null) ? man.Name : null;