Protecting against null
British computer scientist, Tony Hoare, is generally credited as the inventor of the null reference in programming. In 2008, he famously apologized for it, calling it his “billion-dollar mistake.” This was due to the countless bugs and crashes that have occurred in various programming languages when code attempted to interact with variables currently holding null values. While I can’t fault Tony Hoare, nulls can certainly be dangerous.
In .NET, this comes in the form of a NullReferenceException
error, as we saw earlier in this chapter. You get a NullReferenceException
error any time you attempt to invoke a method or evaluate a property on a variable that currently holds a null value.
Before C# 8, developers needed to be explicitly aware that any reference type could hold a null value and write conditional logic, such as the following code:
if (flight != null) { Console.WriteLine($"Flight {flight.Id}: {flight.Status}"...