关于运算符:问号在C#代码中是什么意思?

What does a question mark mean in C# code?

本问题已经有最佳答案,请猛点这里访问。

我见过类似以下无关行的代码:

1
2
3
4
 Console.Write(myObject?.ToString());
 return isTrue ?"Valid" :"Lie";
 return myObject ?? yourObject;
 int? universalAnswer = 42;

问号的所有用法是相关的还是不同的?他们每个人的意思是什么?


根据上下文,问号在C中有不同的含义。

空条件运算符(msdn,成员访问中的问号在C中是什么意思?)

1
Console.Write(myObject?.Items?[0].ToString());

条件运算符/三元运算符(msdn,使用条件运算符的好处?:(三元)运算符)

1
return isTrue ?"Valid" :"Lie";

空合并运算符(msdn,两个问号在c中的含义是什么)

1
return myObject ?? yourObject;

可以为空的类型(msdn,类型(例如:int)后问号的用途是什么?MyValor)?

1
int? universalAnswer = 42;