CHAPTER 4 CORE C# PROGRAMMING CONSTRUCTS, PART II
For example, you are able to programmatically discover whether the nullable variable indeed has
been assigned a null value using the HasValue property or the != operator. The assigned value of a
nullable type may be obtained directly or via the Value property. In fact, given that the ? suffix is just a
shorthand for using Nullable, you could implement your LocalNullableVariables() method as
follows:
static void LocalNullableVariablesUsingNullable()
{
// Define some local nullable types using Nullable.
Nullable nullableInt = 10;
Nullable nullableDouble = 3.14;
Nullable nullableBool = null;
Nullable nullableChar = 'a';
Nullable[] arrayOfNullableInts = new int?[10];
}
Working with Nullable Types
As stated, nullable data types can be particularly useful when you are interacting with databases, given
that columns in a data table may be intentionally empty (e.g., undefined). To illustrate, assume the
following class, which simulates the process of accessing a database that has a table containing two
columns that may be null. Note that the GetIntFromDatabase() method is not assigning a value to the
nullable integer member variable, while GetBoolFromDatabase() is assigning a valid value to the bool?
member:
class DatabaseReader
{
// Nullable data field.
public int? numericValue = null;
public bool? boolValue = true;
// Note the nullable return type.
public int? Get