2010-04-21 5 views
6

Gibt es eine Abkürzung, um eine Zeichenfolge in C# zu löschen?Gibt es eine Abkürzung, um eine Zeichenfolge in C# zu enthülsen?

Es wäre das Äquivalent (wenn 'x' ist ein String):

string y = x == null ? "" : x; 

Ich glaube, ich bin der Hoffnung, es gibt einige Betreiber, die so etwas wie funktionieren würde:

string y = #x; 

Wishful Denken, nicht wahr?

Der nächstgelegene ich bisher bekommen habe ist eine Erweiterung Methode auf der String-Klasse:

public static string ToNotNull(this string value) 
{ 
    return value == null ? "" : value; 
} 

, die mir erlaubt, zu tun:

string y = x.ToNotNull(); 

Alle Verbesserungen auf, dass jemand,?

+1

Ich vermeide Null-Strings, um dieses Problem zu vermeiden. Wenn jemand anders die Null-Strings erstellt, könnte Gewalt notwendig sein. YMMV. – Greg

+0

Die Tatsache, dass Ihr letztes Beispiel funktioniert, ist ziemlich beängstigend, da Sie eine Methode auf ein Objekt aufrufen, um zu überprüfen, ob das Objekt = null ist. Ich weiß es aufgrund von Erweiterungsmethoden, die statisch sind, aber es fühlt sich irgendwie falsch an, wenn man es betrachtet. – ntziolis

+0

Null-Strings sind böse, instanziieren mit String.Empty und vermeiden Logik wie oben. –

Antwort

0

anzeigen Wenn Sie diese reguarly benötigen, anstelle einer Verlängerung Methode, die Sie vielleicht Ihre eigene Art zu prüfen, zu schaffen, die die gleichen wie ein Nullable und Aktien verhalten Verwendung, da eine System.Nullable.GetValueOrDefault(); Methode. Leider können Sie System.Nullable nur für Werttypen verwenden, sodass Sie keine Nullwert-Zeichenfolge als Standard definieren können.

Verwandte Themen