C Sharp nullable operators

? is the null conditional operator. Essentially, this statement

var x = A?.B?.C?.D?.E;

is the same as

var x = null;
if (A != null && A.B != null && A.B.C != null && A.B.C.D != null)
  x = A.B.C.D.E;

! is the null forgiving operator

The null forgiving operator tells the compiler "shut up, I know this could be null but in this instance it will never ever be null, so stop complaining". Which, fun fact, if it can be null because you forgot something means that you get NullReferenceExceptions in your deployed code.