这个MVC项目的第一行是什么意思?
可能重复:
C#中两个问号在一起意味着什么?
我正在查看一个MVC项目,并在cshtml页面的第一行是:
@if (Model.DatabaseIssue ?? false) {
}
这是什么意思? 什么是双? 为什么它被使用?
当Model.DatabaseIssue
不为null
,该行使用Model.DatabaseIssue
,否则使用false
。
?? ?? 运算符称为空合并运算符,用于为可为空的值类型以及引用类型定义默认值。 如果它不是null,则返回左边的操作数; 否则它返回右操作数。
?? 运算符(C#参考)
??
是一个C#操作符,如果它不为空则返回左侧,否则返回右侧。
所以在你的情况下,如果它不为null,它将返回Model.DatabaseIssue
值。 如果它为null,它将返回false
。
Model.DatabaseIssue
似乎有bool?
类型bool?
(可空的布尔)。
如果Model.DatabaseIssue不为null,则使用它,否则使用false。
它在C#中使用了coalesce运算符。 http://msdn.microsoft.com/en-us/library/ms173224.aspx
链接地址: http://www.djcxy.com/p/53843.html