将参数标记为可为空

时间:2009-12-22 10:58:36

标签: vb.net nullable

我从同事那里学到了一些代码,在他的一个方法中,他有一个布尔参数:ByVal showProactiveChases As Boolean?。我不得不昨天查看?运算符,看它是否为Nullable类型。我的问题是,如果我将其更改为:ByVal showProactiveChases As Nullable(Of Boolean),意义是否保持不变?我认为只要它没有改变意义,第二种方式就更具可读性。

4 个答案:

答案 0 :(得分:3)

是的,含义完全相同。

Boolean?Nullable(Of Boolean)将编译为完全相同的IL。

(我个人认为第一个版本更具可读性,但这完全取决于个人品味。)

答案 1 :(得分:2)

There's a third option too

  

以下示例构造一个   可以为null的布尔类型并声明一个   那种类型的变量。你可以写   宣言有三种方式:

Dim ridesBusToWork1? As Boolean
Dim ridesBusToWork2 As Boolean?
Dim ridesBusToWork3 As Nullable(Of Boolean)

答案 2 :(得分:0)

是的,它是一样的。

?是Nullable<T>

的简写

答案 3 :(得分:0)

是的,是吗? operator实际上是Nullable或Nullable(Of T)的快捷方式。