Is there a
Support for proper option types, or algebraic data types in general, isn't coming to C# / VB.Net any time soon.
Support for non-nullable types, which aren't quite the same but would still allow compile-time null-checking, is planned for the upcoming C# 7. AFAIK it has not been confirmed yet that VB 15 will include the same feature though.
You can come up with a number of anti-
NullReferenceException tricks on your own which minimise the chance of accidentally passing a null around, but it's simply not possible to make them 100% compile-time safe for the time being.