可空bool或具有默认值的bool

本文关键字:bool 默认值 可空 | 更新日期: 2023-09-27 18:13:33

也许是一个小问题,但我很好奇。

喜欢什么?

在控制器动作中,当传递参数时,何时以及如何使用它们?

public ActionResult Action(bool aBool = false)

public ActionResult Action(bool? aNullableBool)

我倾向于使用默认值,因为它更清楚,更容易检查,但我想错了吗?

可空bool或具有默认值的bool

两者不相等。在第一个示例中,呼叫者必须指定truefalse,如果没有,则使用false

在第二行,调用者可以提供true,或false,或null。您需要决定如何处理null。这是你可以得到的第三个值。加上调用者不能忽略它。需要传递一个值

可空变量的.HasValue属性有时非常方便。拥有一个可空bool就像在bool中拥有一个bool。以数据库Chuong Les为例,当您读取单元格时,您可能希望在继续之前检查该单元格是否实际持有一个值(并以进一步的错误结束)。

在读取单元格之前,您可以使用一个可空变量并使用if (aNullableBool.HasValue)来确保在继续之前有一个值,而不是必须确保不是这种情况。

话虽如此,除非您冒着变量获得值null的风险,否则您应该使用默认值。

我认为路由配置中的默认值最好

这取决于bool的角色。

如果你想有一个默认值或不(默认行为+只有一个其他行为),那么这个方法只有两个行为。

如果你想将第三种行为作为默认行为,你需要使用一个可空bool值。