bool?
is nullable while bool
is not.
bool? first; bool second;
In the above code, first
will be null
while second
will be false
.
The ?
symbol after a type is only a shortcut to the Nullable type, bool?
is equivalent to Nullable<bool>
.
bool
is a value type, this means that it cannot be null
, so the Nullable type basically allows you to wrap value types, and being able to assign null
to them.
bool?
can contain three different values: true
, false
and null
.
x y x & y x | y true true true true true false false true true null null true false true false true false false false false false null false null null true null true null false false null null null null null
REF: https://stackoverflow.com/questions/1181491/whats-the-difference-between-bool-and-bool