关于c#:会话变量引用后的问号(?) – 这是什么意思

Question Mark (?) after session variable reference - What does that mean

我有一个代码片段要修改。在那里我发现了这种语法。

1
Session("LightBoxID")?.ToString()

我不明白那个问号是什么(?)这意味着。谷歌没有帮我任何提示。


它在试图调用.ToString()之前对Session("LightBoxID")执行空检查。

msdn:空条件运算符(C和Visual Basic)


它是空条件运算符这是一个用于空检查的语法甜头:

1
return str?.ToString();

将成为

1
2
3
4
5
if (str == null)
{
    return null;
}
return str.ToString();