What is nullable type in c# ?

In C#, a nullable type allows you to assign an additional value, null, to value types such as integers, floats, booleans, etc., which by default cannot hold a null value. It provides a way to represent the absence of a value for value types.

Key points to about nullable types:

  1. Value Types vs. Reference Types: In C#, value types represent data directly, while reference types hold a reference to an object. Value types, by default, cannot be assigned a null value. However, by using nullable types, you can assign null to value types.
  2. Nullable Value Types: A nullable value type is a value type that can also have a null value. It is created by appending a ? to the type declaration. For example, int? represents a nullable integer, float? represents a nullable float, and so on.
  3. Nullable Value Type Properties: You can declare nullable value types as properties in classes or use them as method parameters. This allows for scenarios where a value might be missing or unknown.
  4. Nullable Value Type Operations: Nullable types allow you to perform operations on nullable value types using the null coalescing operator (??) or by checking for null using the HasValue property. This helps in handling scenarios where the value may or may not be null.
int? nullableInt = null; float? nullableFloat = 3.14f; // Assigning values to nullable types nullableInt = 10; nullableFloat = null; // Checking for null if (nullableInt.HasValue) { // Accessing the value of nullableInt int value = nullableInt.Value; Console.WriteLine("Value: " + value); } else { Console.WriteLine("nullableInt is null"); } // Using the null coalescing operator int result = nullableInt ?? 0; Console.WriteLine("Result: " + result);
C# Interview questions and answers

In the above example, nullableInt is a nullable integer that can hold either an integer value or null. We assign values to nullableInt and demonstrate checking for null using the HasValue property. We also use the null coalescing operator (??) to assign a default value of 0 to result if nullableInt is null.


The nullable types in C# allow you to assign null to value types, representing the absence of a value. They enable handling scenarios where a value may or may not be present. By using nullable types, you can work with value types that can hold null, perform null-checking operations, and provide more flexibility in your code.