In c# types are 2 types. 1.value types 2.reference types By default value types non nullable types But we make them nullable types by using? Example int I=null; it will so compile time error Int? I=null; we make it non nullable type as nullable type when we required this is when ever we want to value types is optional then we make it like this. Ex: value types int, double, etcReference types are nullable types. Ex. String I=null;
C# provides a special data types, the nullable types, to which you can assign normal range of values as well as null values.