Olmo made a very worthwhile suggestion on the LINQ forums recently. His suggestion was for a new operator to be added to the C# language to allow us to do away with the following kind of pesky construct:
[sourcecode language='csharp']string x; if(a != null && a.Address != null && a.Address.FirstLine != null) x = a.Address.FirstLine;[/sourcecode]
instead he suggested a new ?. operator so that we could produce something like this:
[sourcecode language='csharp']x = a?.Address?.FirstLine;[/sourcecode]
and at the first sign of failure it would just yield a null or the equivalent. I like this suggestion, it is elegant, and provides a similar meaning to the coalescing operator. The C# team have been adding lots of these little bits of syntactic sugar recently, so why not add another that will save us lots of thrown exceptions or grisly if statements?