Not even a thought has arisen; is there still a sin or not?
—Zen Koan, 10th Century CE
This is a chapter about nothing! Specifically, it’s about how we handle the absence of data in our programs. It’s a more important topic than you might think at first: bugs caused by incorrect handling of missing data, typically manifested as “null reference errors,” are distressingly common in Object Oriented programs. And this still happens, despite code to avoid such errors forming a significant proportion of the line count of many C# codebases.
In this chapter I’ll try to convince you how serious a problem this is, and show you ...