可以使用默认值的可空的bool或bool?

Eri*_*son 6 c# asp.net-mvc nullable default-value

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

什么是青睐?

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

public ActionResult Action(bool aBool = false)
Run Code Online (Sandbox Code Playgroud)

要么

public ActionResult Action(bool? aNullableBool)
Run Code Online (Sandbox Code Playgroud)

我倾向于使用defualt-value,因为它更清晰,更容易检查,但我错了吗?

nvo*_*igt 8

这两者并不相同.在第一个示例中,调用者必须指定,true或者false如果不false使用,则必须使用.

在第二行中,呼叫者可以提供true,或false,或null.您需要决定如何处理null.这是你可以获得的第三个价值.加上来电者不能省略它.他需要传递一个价值.

  • @Silvermind这是不正确的,类型是可空的**不是**可选的,微妙的区别,但是可以为空,你需要指定一些东西,即使它只是null. (3认同)