Was ist der Unterschied zwischen Convert.Int32 () und Int32.Parse ()?

7

Ich habe etwas Verwirrung bei der Verwendung von Convert.Int32 () und int32.Parse (). Wenn wir Convert.Int32 () oder int32.Parse () ... verwenden

    
Vijjendra 30.09.2009, 20:19
quelle

4 Antworten

13

Convert.ToInt32 () wird versuchen, alles - sei es char, double, object, was hast du - in ein Int32 umzuwandeln. Int32.Parse () funktioniert nur für Zeichenfolgen.

BEARBEITEN: Als Antwort auf den Kommentar von OP habe ich ein Zitat von aus diesem Thread :

  

Grundsätzlich macht es die Convert-Klasse   einfacher zwischen allen Basen zu konvertieren   Typen.

     

Die Convert.ToInt32 (String,   IFormatProvider) darunter ruft den   Int32.Parsen. Also der einzige Unterschied ist   dass, wenn eine Null-Zeichenfolge übergeben wird   Konvertieren gibt 0 zurück, während   Int32.Parse wirft ein   ArgumentNullException.

     

Es ist wirklich eine Frage der Wahl   was auch immer Sie verwenden.

    
Matthew Jones 30.09.2009, 20:20
quelle
4

Erweiterung der Antwort von Matthew.

Convert.ToInt32 ermöglicht benutzerdefinierte Erweiterungen in erweiterbarer Form. Für jede nicht vordefinierte Konvertierung (hauptsächlich Primitive) überprüft die Convert-Klasse, ob der Typ IConventible implementiert und verwendet sie dann, um dem Objekt zu erlauben, seine eigene Konvertierung in Int32 (und viele andere Typen) zu definieren.

    
JaredPar 30.09.2009 20:24
quelle
2

Convert.ToInt32 konvertiert null in 0 ; Int32.Parse löst eine Exception aus, wenn Sie null übergeben. Auch wie Matthew Jones sagte , Int32.Parse funktioniert nur für Strings.

Weitere Informationen finden Sie in diesem Artikel .

>     
Jacob Krall 30.09.2009 20:22
quelle
0

Laut MSDN wird Parse () für string to int verwendet, wobei Convert vielseitiger für Conversions ist.

Int32.Parse ()

Convert.Int32 () sollte Ihre Hauptwahl sein

    
stewsha 30.09.2009 20:24
quelle

Tags und Links