Extension Methods ermöglichen ein etwas seltsames Szenario:
Man kann auf NULL eine Methode aufrufen ohne dass dies einen NULL Pointer provoziert. Die Erklärung ist einfach: Für den Complier ist eine Extension nur eine statische Methode, welcher das Objekt als Parameter übergeben wird.
Dass man diese Methode direkt auf dem Objekt aufrufen kann ist nur "syntactic sugar" wie man so schön sagt.
Sauber finde ich es nicht. NULL ist nichts und Nichts hat keine Methoden.
Trotzdem habe ich eine kleine Extension geschrieben, welche diesen Umstand ausnutzt und die einfach praktisch ist:
1: public static string ToStringNullCheck(this object pObject)
2: {
3: return pObject == null ? string.Empty : pObject.ToString();
4: }
Man erhält den ToString() wenn das Objekt nicht null ist, ansonsten einen leeren String :)