2010-11-11 14 views

Odpowiedz

19

Jest różnica, tak. Każdy obiekt ma metodę ToString, ale nie każdy obiekt można rzutować na ciąg.

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() podnosi wyjątek, gdy obiekt jest null, (string) konwersja nie.

0

Tak, oba są bardzo różne.

string anObjectString = (string)anObject; jest obsada Wpisz lub konwersja Rodzaj byłoby skuteczne tylko wtedy, gdy konwersja typu jest ważny jeden

ToString() to metoda dostępna dla wszystkich przedmiotu (ów) W ramach. Jest to metoda wirtualna, w której domyślna implementacja zwraca nazwę typu obiektu.

Jesteśmy porównywanie jabłek do pomarańczy tutaj ..

0

Tak, ToString() jest metodą, która każdego rodzaju narzędzi (ponieważ każdy typ dziedziczy System.Object który implementuje metodę). Niektóre typy mogą zastąpić tę metodę, aby zapewnić własne niestandardowe zastępowanie implementacji. Wywołanie do ToString() powinno zawsze zakończyć się sukcesem i zwrócić instancję łańcucha znaków (chociaż dla niektórych implementacji może być pusta).

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

Rzut jest konwersją danego odniesienia do obiektu na odniesienie zapisane jako ciąg. Jeśli rzutowany rzut nie jest ciągiem, rzutowanie zakończy się niepowodzeniem.

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

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

zasadniczo ToString() to funkcja, która zwraca ciąg reprezentujący obiekt, w którym został on zastosowany.

ciąg jako typ jest jak int - pierwotną (w C# jego obiektem)

1

Object.toString() przekształcenia obiektu obiektu string.If ma wartość zerową wówczas to rzut wyjątku, ponieważ nie null ma metodę ToString().

Obiekt (ciąg) jest rozpakowywanym typem referencji do typu wartości. tutaj wartość obiektu kopiuje do nowej instancji typu string. jeśli obiekt ma wartość NULL, przypisuje wartość pustą.

0

Jeśli jesteś po bezpiecznej konwersji z obiektu do łańcucha wystarczy użyć:

string s = Convert.ToString(o); 
Powiązane problemy