2009-12-22 4 views
1

J'ai récupéré du code d'un collègue, et dans l'une de ses méthodes il a un paramètre booléen: ByVal showProactiveChases As Boolean?. J'ai dû chercher l'opérateur ? hier pour voir qu'il indique un type Nullable. Ma question est, si je la change en: ByVal showProactiveChases As Nullable(Of Boolean), est-ce que le sens reste le même? Je pense que pourvu que cela ne change pas le sens de la seconde façon est beaucoup plus lisible.Marquage des paramètres comme Nullable

Répondre

3

Oui, la signification est exactement la même.

Boolean? et Nullable(Of Boolean) seront compilés exactement à la même IL.

(Personnellement, je trouve la première version plus lisible, mais il est tout goût personnel.)

0

Oui, il est le même.

? est le raccourci pour Nullable<T>

0

Oui, le? L'opérateur est en fait un raccourci pour Nullable ou Nullable (Of T).

2

There's a third option too:

L'exemple suivant construit un type booléen nullable et déclare une variable de ce type. Vous pouvez écrire la déclaration de trois façons:

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