Konvertieren von dezimal? zu verdoppeln?
Frage ich mich, was wäre der beste Weg (im Sinne von sicherer und prägnante), konvertieren von einem nullable-Typ auf einen anderen "kompatiblen" nullable-Typ.
Speziell die Umwandlung von dezimal? zu verdoppeln? gemacht werden kann:
public double? ConvertToNullableDouble(decimal? source)
{
return source.HasValue ? Convert.ToDouble(source) : (double?) null;
}
Gibt es eine bessere Möglichkeit, dies zu tun? Vielleicht nutzt eine standard-Konvertierung?
Ihr Weg ist ein guter Weg.
Du machst es richtig! Überprüfen Sie auch diesen Verweis: stackoverflow.com/questions/5487685/...
Du machst es richtig! Überprüfen Sie auch diesen Verweis: stackoverflow.com/questions/5487685/...
InformationsquelleAutor Camilo Martinez | 2013-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gebaut in wirft für den Sieg! Gerade getestet, in VS2012 und VS2010:
Nur mit einem expliziten cast gewirkt wird, null zu null, und die interne dezimale Wert zu verdoppeln. Erfolg!
Es ist seltsam, da in Fragen wie die, die MUG4N verbunden, es scheint eine Menge Leute haben Theorien, aber niemand wirklich versucht. 🙂
In der Tat alle conversions, bei denen ein null-Wert geben Sie Quelle und Ziel können "gehoben, um null-Werte zulässt".
Das ist merkwürdig, da ich sehen konnte, eines explicit Umwandlung in die nicht-nullable-Typ, nicht aber eine implizite.
Die Konvertierung von decimal auf double explizite, also die Umwandlung von dezimal? zu verdoppeln? ist auch.
InformationsquelleAutor
Im Allgemeinen, wenn Sie wollen o konvertieren von beliebigen Daten-Typ auf den anderen, solange Sie kompatibel sind, verwenden Sie diese:
Beispiel:
Etwas weiter, wenn Sie wollen, dass es mehr Sicherheit und fügen Sie einen try-catch:
dies ist getestet unter VS 2010
Sie können dieses verwenden: dezimal? v1 =222; Doppel? V2 = (double?)Konvertieren.ChangeType(v1, typeof(double)); aber wenn v1 null ist, Konvertieren.ChangeType werfen eine Ausnahme. und dann der try-catch-Dosis der linken-job.
InformationsquelleAutor