2013-10-29 11 views
5

Recentemente, ho visto la seguente dichiarazione un bel po ':conversione di oggetti in stringa anteponendo stringa vuota in C#

object o; 
// assign o 
return "" + o; 

(In pratica la stessa di return String.Concat(o);)

Perché qualcuno dovrebbe voler fare quella? Perché non chiamare semplicemente .ToString() sull'oggetto (dopo aver controllato che l'oggetto non sia nullo, ovviamente)?

Certo, il codice è più breve e elimina il controllo Null, ma trovo confuso da leggere. Ci sono altri vantaggi a questo? Ho anche visto la stessa affermazione riguardo ai valori interi.

Mi aspetto di vedere il codice sopra nei linguaggi generici come JavaScript o PHP, ma non in C#.

+0

IMO "+" operatore per la concatenazione è sempre ** ** non così chiaro, ma bene questo può essere un posizione troppo estrema ... –

risposta

3

No, non si vorrebbe farlo in C#. Stai meglio chiamando il metodo ToString sull'oggetto. Ci sono alcune lingue in cui questa è la sintassi preferita, come con JavaScript. Quindi potresti vedere qualche perdita linguistica.

3

IMO, solo un approccio errato per evitare l'eccezione di riferimento Null.

Probabilmente l'intento dello sviluppatore originale era quello di utilizzare come meno codice possibile a tornare string senza controllare null o Type

Problemi correlati