40 Stimmen

Unterschied zwischen Convert.ToDecimal(string) & Decimal.Parse(string)

Was ist der Unterschied in C# zwischen Convert.ToDecimal(string) y Decimal.Parse(string) ?

In welchen Fällen würden Sie das eine dem anderen vorziehen?

Welchen Einfluss hat sie auf die Leistung?

Welche anderen Faktoren sollte ich bei der Wahl zwischen den beiden Angeboten in Betracht ziehen?

0voto

tony95 Punkte 91

Convert.ToDecimal gibt offenbar nicht immer 0 zurück. In meiner Linq-Anweisung

var query = from c in dc.DataContext.vw_WebOrders
select new CisStoreData()
{
       Discount = Convert.ToDecimal(c.Discount)
};

Rabatt ist immer noch null nach der Konvertierung von einem Decimal? das ist null. Jedoch außerhalb einer Linq-Anweisung, erhalte ich eine 0 für die gleiche Konvertierung. Frustrierend und ärgerlich.

0voto

Nandostyle Punkte 156

Convert.ToDecimal ist in den meisten Fällen der richtige Weg, da es mit NULL umgehen kann, aber leere Zeichenfolgen nicht sehr gut behandelt. Daher könnte die folgende Funktion helfen:

'object should be a string or a number
Function ConvertStringToDecimal(ByVal ValueToConvertToDecimal As Object) As Decimal
    If String.IsNullOrEmpty(ValueToConvertToDecimal.ToString) = False Then
        Return Convert.ToDecimal(ValueToConvertToDecimal)
    Else
        Return Convert.ToDecimal(0)
    End If
End Function

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