ASP.NET 核心文档显示 ?操作员。这是什么意思?
ASP.NET Core docs show unfamiliar usage of the ? operator. What does it mean?
ASP.NET Core minimal API docs 显示类似于以下的语法:
db.Todos.Find(id)
is Todo todo
? Results.Ok(todo)
: Results.NotFound());
我相信这是 ?
运算符的一个用例,它记录在主 C# docs 中。但是,这些文档仅显示以下格式:
condition ? consequent : alternative
其中 condition
必须计算为布尔值。
is
关键字允许检查特定变量是否具有特定类型,因此像 db.Todos.Find(id) is Todo
这样的关键字就足够了。
但是,他们还引入了一个变量 todo
,该变量在该语句之前未在任何地方声明,并且似乎作为参数传递给 Results.Ok
我现在很困惑。添加todo
是什么意思。在哪里记录了变量可以包含在 aftercondition
之后?如果没有记录,那为什么不呢?
这是类型安全的 pattern matching cast.
所以变量‘todo’是可验证的non-null Todo。
ASP.NET Core minimal API docs 显示类似于以下的语法:
db.Todos.Find(id)
is Todo todo
? Results.Ok(todo)
: Results.NotFound());
我相信这是 ?
运算符的一个用例,它记录在主 C# docs 中。但是,这些文档仅显示以下格式:
condition ? consequent : alternative
其中 condition
必须计算为布尔值。
is
关键字允许检查特定变量是否具有特定类型,因此像 db.Todos.Find(id) is Todo
这样的关键字就足够了。
但是,他们还引入了一个变量 todo
,该变量在该语句之前未在任何地方声明,并且似乎作为参数传递给 Results.Ok
我现在很困惑。添加todo
是什么意思。在哪里记录了变量可以包含在 aftercondition
之后?如果没有记录,那为什么不呢?
这是类型安全的 pattern matching cast.
所以变量‘todo’是可验证的non-null Todo。