Possible pitfalls of using this (extension method based) shorthand

We independently came up with the exact same extension method name and implementation: Null-propagating extension method. So we don’t think it’s confusing or an abuse of extension methods.

I would write your “multiple levels” example with chaining as follows:

propertyValue1 = myObject.IfNotNull(o => o.ObjectProp).IfNotNull(p => p.StringProperty);

There’s a now-closed bug on Microsoft Connect that proposed “?.” as a new C# operator that would perform this null propagation. Mads Torgersen (from the C# language team) briefly explained why they won’t implement it.

Leave a Comment