Q:

Question Mark syntax on method call

What does the ? indicate in the following C# code?
var handler = CallBack;
handler?.Invoke();

I have read that you can use a ? before a type to indicate that it is a nullable type. Is this doing the same thing?

A:

This is C#6 code using the null conditional operator indicating that this code will not throw a NullReferenceException exception if handler is null:
Delegate handler = null;
handler?.Invoke();

which avoid you writing null checks that you would have to do in previous versions of the C# language:
Delegate handler = null;
if (handler != null)
{
    handler.Invoke();
}

