会话变量引用后的问号 (?) - 这是啥意思

Posted

技术标签:

【中文标题】会话变量引用后的问号 (?) - 这是啥意思【英文标题】:Question Mark (?) after session variable reference - What does that mean会话变量引用后的问号 (?) - 这是什么意思 【发布时间】:2017-08-21 19:49:40 【问题描述】:

我有一个代码sn -p 来修改。在那里我发现了这种语法。

Session("LightBoxID")?.ToString()

我不明白问号 (?) 是什么意思。没有谷歌搜索帮助我了解任何提示

【问题讨论】:

简写空检查。 @AlexeiLevenkov 这个问题与可空类型无关。结束问题时请小心 空条件运算符又名安全导航运算符又名猫王运算符。 msdn.microsoft.com/en-us/library/dn986595.aspx is 是重复的,但它根本与可空类型无关。这是关于Null Conditional operator 你也可以查看这个问题***.com/questions/41524749/… 【参考方案1】:

它是空条件运算符 它是空值检查的语法糖:

return str?.ToString();

会变成

if (str == null)

    return null;

return str.ToString();

【讨论】:

使用空条件运算符是否被认为是一种好习惯?【参考方案2】:

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

微软文档:Null-conditional operators ?. and ?[]

【讨论】:

以上是关于会话变量引用后的问号 (?) - 这是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

$var?中bash变量参数扩展中的问号是啥意思?

C语言中变量加冒号是啥意思

c语言的双冒号是啥意思::

volatile const int ci = 100;这是啥意思?

Ruby问号运算符,这是啥意思? [复制]

这是啥:变量JS语法后的符号?