Use Nullable Types to Assign a Null Value to Value-type Variables

Use Nullable Types to Assign a Null Value to Value-type Variables

Suppose you want to have a primitive type with a null (or an unknown) value. This is where you would use a nullable type.

Nullable types have the following characteristics:

  • They represent value-type variables that can be assigned the value of null.
  • You cannot create a nullable type based on a reference type (reference types already support the null value).
  • The syntax T? is shorthand for System.Nullable&ltT&gt, where T is a value type. The two forms are interchangeable.
  • You can assign a value to a nullable type in the same way you’d assign a value for an ordinary value type. For example:
    int? x = 10; or double? d = 4.108;
  • Use the System.Nullable.GetValueOrDefault property to return either the assigned value or the default value for the underlying type if the value is null. For example:
    int j = x.GetValueOrDefault();
  • Use the HasValue and Value read-only properties to test for null and retrieve the value. For example:
    if(x.HasValue) j = x.Value;
  • The HasValue property returns true if the variable contains a value, or false if it is null.
  • The Value property returns a value if one is assigned, otherwise a System.InvalidOperationException is thrown.
  • The default value for a nullable type variable sets HasValue to false. The Value is undefined.
  • Use the ?? operator to assign a default value that will be applied when a nullable type whose current value is null is assigned to a non-nullable type, for example:
    int? x = null; int y = x ?? -1;
  • Nested nullable types are not allowed. The following line will not compile:
    Nullable> n;
See also  11 Effective Keyword Research Tools and Techniques

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist