这个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

上一篇: What does the first line in this MVC project mean?

下一篇: What does "??" do in C#?