26 Stimmen

Int32.Parse() VS Convert.ToInt32()?

intID1 = Int32.Parse(myValue.ToString());
intID2 = Convert.ToInt32(myValue);

Welche ist besser und warum?

0 Stimmen

Mögliche Duplikate von .Net Parse versus Konvertieren

38voto

SLaks Punkte 832502

Sie sind genau dasselbe, außer, dass Convert.ToInt32(null) gibt zurück. 0 .

Convert.ToInt32 ist wie folgt definiert:

    public static int ToInt32(String value) {
        if (value == null) 
            return 0;
        return Int32.Parse(value, CultureInfo.CurrentCulture);
    }

0 Stimmen

Wo finden Sie den Quellcode der Funktion ToInt32()? Ich habe MSDN gegoogelt und kann die Details nicht finden, wie Sie sie eingegeben haben :-)

4 Stimmen

6voto

Adam P Punkte 4505

Nun, Reflector sagt...

public static int ToInt32(string value)
{
    if (value == null)
    {
        return 0;
    }
    return int.Parse(value, CultureInfo.CurrentCulture);
}

public static int Parse(string s)
{
    return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo);
}

Sie sind also im Grunde genommen gleich, mit der Ausnahme, dass Convert.ToInt32() führt eine zusätzliche Nullprüfung durch.

0voto

Free Coder 24 Punkte 873

Es kommt darauf an, was Sie mit "besser" meinen, denn "besser" ist subjektiv.

Zum Beispiel die Lesbarkeit des Codes. Manche Leute ziehen es vor, in ihrem Code "Convert" zu sehen, andere ziehen es vor, "Parse" zu sehen.

Auch in Bezug auf die Geschwindigkeit sind beide ungefähr gleich nach diesen Maßstäben .

Oder wollen Sie immer einen Wert zurückerhalten? Wie bereits von anderen erwähnt, gibt ConvertTo bei Nullwerten eine 0 (Null) zurück, während Sie diese Option bei Parse nicht erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X