The most common way for representing an absent value is 'null' (Null, Nil, Nothing, (), ...). But in some languages the absent value have an actual representation. That helps avoiding many problems that has their root in 'null'. Unfortunately those tools can not be easily mocked in C# because C# lacks ADT (Algebraic Data Types). There are many other entries on the web on the matter if more details are needed; yet, in simple it's about controlling absence of a value (more) explicitly in type-system itself.