Build Your Own Option Type in C# and Use It Like a Pro