 int?n = 2;
n = null;

Console.WriteLine(n.HasValue);


In reality this is the same as using the struct.Nullable n = 2;
n = null;

Console.WriteLine(n.HasValue);


C# has and allows pointers to selected types (some primitives, enums, strings, pointers, and even arrays and structs if they contain only types that can be pointed) in unsafe context