Syntax
- X?.Y; //null if X is null else X.Y
- X?.Y?.Z; //null if X is null or Y is null else X.Y.Z
- X?[index]; //null if X is null else X[index]
- X?.ValueMethod(); //null if X is null else the result of X.ValueMethod();
- X?.VoidMethod(); //do nothing if X is null else call X.VoidMethod();
Note that when using the null coalescing operator on a value type T
you will get a Nullable<T>
back.