C # forma elegante de verificar si la propiedad de una propiedad es nula

En C #, supongamos que desea extraer un valor de PropertyC en este ejemplo y ObjectA, PropertyA y PropertyB pueden ser nulos.

ObjectA.PropertyA.PropertyB.PropertyC

¿Cómo puedo obtener PropertyC de forma segura con la menor cantidad de código?

En este momento comprobaría:

if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)
{
    // safely pull off the value
    int value = objectA.PropertyA.PropertyB.PropertyC;
}

Sería bueno hacer algo más como esto (pseudocódigo).

int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;

Posiblemente colapsó aún más con un operador de fusión nula.

EDITAR Originalmente dije que mi segundo ejemplo era como js, pero lo cambié a psuedo-code ya que se señaló correctamente que no funcionaría en js.

Respuestas a la pregunta(21)

Su respuesta a la pregunta