devxlogo

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;

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  Five Early Architecture Decisions That Quietly Get Expensive

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.