C# 6.0 adds this new ?.
operator which now allows to invoke events like so:
someEvent?.Invoke(sender, args);
Now, from what I read, this operator guarantees that someEvent is evaluated once. Is it correct to use this kind of invocation instead of the classic pattern:
var copy = someEvent
if(copy != null)
copy(sender, args)
I'm aware of certain scenarios where above version of pattern would require additional locks, but let's assume the simplest case.