O que o operador de ponto de interrogação e ponto? significa em C # 6.0?

Com o C # 6.0 na visualização do VS2015, temos um novo operador,?., que pode ser usado assim:

public class A {
   string PropertyOfA { get; set; }
}

...

var a = new A();
var foo = "bar";
if(a?.PropertyOfA != foo) {
   //somecode
}

o que exatamente isto faz?

questionAnswers(3)

yourAnswerToTheQuestion