Nella versione 2.0 del framework sono stati introdotti i Nullable Types, un particolare tipo di dato, facente parte della categoria dei "Value Types", utile a dichiarare una variabile senza doverla valorizzarla in fase di dichiarazione.
Era proprio una mancanza questa, ormai colmata dai tipi nulli.
Questa la sintassi C# e VB.NET per utilizzare i Nullable Types:

C#

Nullable<bool> b = null;


//oppure
bool? b = null;

VB.NET
Dim b As Nullable(Of Boolean) = Nothing

In questi modi, la variabile b non ha alcun valore. In seguito, possiamo controllare se questa viene valorizzata durante il corso dell'esecuzione del programma, attraverso la proprietà HasValue e, in caso affermativo, possiamo recuperarne il valore attraverso la proprietà Value.
E' da notare che queste due proprietà sono appartenenti alla classe System.Nullable e non al tipo Boolean.

C#
if (b.HasValue)

Console.WriteLine("Il valore di b è: {0}", b.Value);
else
Console.WriteLine("b non ha valore");

VB.NET
If b.HasValue Then

Console.WriteLine("b is {0}.", b.Value)
Else
Console.WriteLine("b is not set.")