Nullable types are constructed using the ? type modifier. For example, int? is the nullable form of the predefined type int. A nullable type’s underlying type must be a non-nullable value type.

The type specified before the ? modifier in a nullable type is called the underlying type of the nullable type. The underlying type of a nullable type can be any non-nullable value type or any type parameter that is constrained to non-nullable value types (that is, any type parameter with a st r uct constraint). The underlying type of a nullable type cannot be a nullable type or a reference type.

A nullable type can represent all values of its underlying type plus an additional null value.

The syntax T? is shorthand for System.Nullable<T>, and the two forms can be used interchangeably. 

Add Class Nullable type to C# profile.

class class1 { 
}
int? a = null; 
System.Nullable a = null;
}

Reversed UML model: