Best syntax for a = (x == null) ? null : x.func()

Well, you could use an extension method like this: public static TResult NullOr<TSource, TResult>(this TSource source, Func<TSource, TResult> func) where TSource : class where TResult : class { return source == null ? null : func(source); } Then: var a = some_long_expression.NullOr(x => x.Method()); Or (depending on your version of C#) var a = some_long_expression.NullOr(Foo.Method); …

Read more