2009-12-22 31 views
1

我從同事那裏拿到了一些代碼,在他的一個方法中他有一個布爾參數:ByVal showProactiveChases As Boolean?。我昨天不得不查看?運算符,看看它表示一個可爲空的類型。我的問題是,如果我將其更改爲:ByVal showProactiveChases As Nullable(Of Boolean),意義是否保持不變?我認爲提供它不會改變意思,第二種方式更具可讀性。標記參數爲空可用

回答

3

是的,意思是完全一樣的。

Boolean?Nullable(Of Boolean)將被編譯成完全相同的IL。

(我個人覺得第一個版本更具可讀性,但是這一切都下降到個人喜好。)

0

是的,這是一樣的。

?是速記Nullable<T>

0

是的,運算符實際上是Nullable或Nullable(Of T)的快捷方式。

2

There's a third option too

下面的示例構造一個 可空布爾類型,並聲明類型的 變量。您可以通過三種方式寫 聲明:

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