2016-07-29 6 views
-3

ich die folgende Logik wollen, ein Motto seinVerwendung ?? Operator für Zeichenfolge null oder leer und DBNull.Value

string CastString(String str) 
{ 
    if (string.IsNullOrEmpty(str)) 
    { 
     return DBNull.Value.ToString(); 
    } 
    else 
    { 
     return str; 
    } 
} 

was habe ich versucht, ist

string.IsNullOrEmpty(str) ? DBNull.Value : str 

ist es eine Möglichkeit, das verwenden ?? Betreiber dafür, was ich versuchte, ist

return str ?? DBNull.Value 

aber nicht

+3

'??' prüft auf Null, aber in Ihrem ursprünglichen Code suchen Sie auch nach einer leeren Zeichenkette. Ein ternärer Operator ist also hier ideal. – Jonesopolis

+0

was macht es mit 'sql-server' tag? – techspider

+0

Warum kümmern Sie sich mit 'DBNull.Value.ToString()' es wird einfach 'String.Empty' zurückgeben, wenn Sie ein' Objekt' anstelle einer 'Zeichenkette' zurückgeben, wäre es sinnvoll' 'DBNull zurückzugeben .Value; 'doing' return DBNull.Value.ToString(); 'ist sinnlos. –

Antwort

3

Der ternäre Operator funktioniert es ein Einzeiler

return string.IsNullOrEmpty(str) ? DBNull.Value.ToString() : str; 
+0

die Fragen sagt er schon versucht – derloopkat

1

Du ToString fehlen machen(), aber es wird immer noch nicht prüfen, leere Zeichenfolge.

return str ?? DBNull.Value.ToString(); 
+1

Ich glaube nicht, dass überprüft, wenn die Zeichenfolge leer ist –

+0

Ja, ich erwähnte es in meiner Bemerkung, ich korrigierte nur den Fehler in seinem Code – Vijai

Verwandte Themen