2010-11-11 11 views

risposta

19

C'è una differenza, sì. Ogni oggetto ha un metodo ToString, ma non tutti gli oggetti possono essere trasmessi a una stringa.

int i = 10; 
string s1 = i.ToString(); // OK 
string s2 = (string)i; // Compile error. 

object o = 10; 
string s3 = o.ToString(); // OK 
string s4 = (string)o; // Runtime error. 
10

ToString() solleva eccezione quando l'oggetto è null, (string) conversione non.

0

Sì, entrambi sono molto diversi.

string anObjectString = (string)anObject; è un calco tipo o una conversione tipo sarebbe solo successo se la conversione tipo è un valido uno

ToString() è un metodo disponibile per tutti oggetto (s) nel quadro. È un metodo virtuale in cui l'implementazione predefinita restituisce il nome del tipo dell'oggetto.

Stiamo confrontando le mele alle arance qui ..

0

Sì, ToString() è un metodo che ogni tipo di attrezzi (dal momento che ogni tipo di eredita da System.Object che implementa il metodo). Alcuni tipi possono sovrascrivere questo metodo per fornire le proprie implementazioni di sovrascrittura personalizzate. Una chiamata a ToString() dovrebbe sempre riuscire e restituire un'istanza di stringa (anche se potrebbe essere nulla per alcune implementazioni).

var x = new AnyArbitraryObjectType(); 
var y = x.ToString(); // will always succeed (if ToString has not been overridden, or if it has been overridden properly) 

Un cast è la conversione di un dato riferimento a un riferimento digitato come stringa. Se il riferimento che viene lanciato non è una stringa, il cast fallirà.

var a = "hello"; 
var b = 5; 

var x = (string)a; // will succeed 
var y = (string)b; // will fail with InvalidCastException 
0

fondamentalmente ToString() è una funzione che restituisce una stringa che rappresenta l'oggetto è stato applicato su.

stringa come un tipo è come un int - un primitivo (in C# il suo un oggetto)

1

Object.toString() convertire l'oggetto in oggetto string.If ha valore nullo allora si getterà un'eccezione perché nessuno null ha il metodo ToString().

Considerando che l'oggetto (stringa) è un processo di unboxing di tipo di riferimento a tipo di valore. qui il valore oggetto sta copiando in una nuova istanza di tipo stringa. se l'oggetto è nullo assegnerà un valore nullo.

0

Se siete dopo la conversione al sicuro da oggetto a stringa basta usare:

string s = Convert.ToString(o); 
Problemi correlati