可空bool或具有默认值的bool
本文关键字:bool 默认值 可空 | 更新日期: 2023-09-27 18:13:33
也许是一个小问题,但我很好奇。
喜欢什么?
在控制器动作中,当传递参数时,何时以及如何使用它们?
public ActionResult Action(bool aBool = false)
或
public ActionResult Action(bool? aNullableBool)
我倾向于使用默认值,因为它更清楚,更容易检查,但我想错了吗?
两者不相等。在第一个示例中,呼叫者必须指定true
或false
,如果没有,则使用false
。
在第二行,调用者可以提供true
,或false
,或null
。您需要决定如何处理null
。这是你可以得到的第三个值。加上调用者不能忽略它。需要传递一个值
可空变量的.HasValue
属性有时非常方便。拥有一个可空bool就像在bool中拥有一个bool。以数据库Chuong Les为例,当您读取单元格时,您可能希望在继续之前检查该单元格是否实际持有一个值(并以进一步的错误结束)。
在读取单元格之前,您可以使用一个可空变量并使用if (aNullableBool.HasValue)
来确保在继续之前有一个值,而不是必须确保不是这种情况。
话虽如此,除非您冒着变量获得值null
的风险,否则您应该使用默认值。
我认为路由配置中的默认值最好
这取决于bool的角色。
如果你想有一个默认值或不(默认行为+只有一个其他行为),那么这个方法只有两个行为。
如果你想将第三种行为作为默认行为,你需要使用一个可空bool值。