Wie verwende ich DateTime.TryParse mit einem Nullable & lt; DateTime & gt ;?
Möchte ich die DateTime.TryParse-Methode der datetime-Wert von einem string in einen null-Werte zu. Aber wenn ich es versuchen:
DateTime? d;
bool success = DateTime.TryParse("some date text", out (DateTime)d);
der compiler sagt mir
"out" - argument ist nicht klassifiziert als eine variable
Nicht sicher, was ich hier tun müssen. Ich habe auch versucht:
out (DateTime)d.Value
und das funktioniert auch nicht. Irgendwelche Ideen?
InformationsquelleAutor der Frage Brian Sullivan | 2008-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Es gibt vielleicht elegantere Lösungen, aber warum gehst du nicht einfach etwas tun, wie oben?)
InformationsquelleAutor der Antwort Jason Kealey
Als Jason sagt, Sie können erstellen Sie eine variable des richtigen Typs und pass. Möchten Sie vielleicht, um es zu Kapseln in Ihre eigene Methode:
... oder wenn man wie der bedingte operator:
Oder in C# 7:
InformationsquelleAutor der Antwort Jon Skeet
Können Sie nicht, weil
Nullable<DateTime>
ist eine andere Art zuDateTime
.Sie müssen schreiben Sie Ihre eigene Funktion, es zu tun,
Hoffe, das hilft 🙂
EDIT:
Entfernt die (offensichtlich) falsch getestet Erweiterung Methode, weil (wie bereits von einigen schlechten hoor) Erweiterung-Methoden, die versuchen, ändern Sie die "this" - parameter funktioniert nicht mit Wert-Typen.
P. S. Die Schlechte Hoor in Frage ist ein Alter Freund 🙂
InformationsquelleAutor der Antwort Binary Worrier
Hier ist eine etwas concised edition von dem, was Jason vorgeschlagen:
InformationsquelleAutor der Antwort
Was über das anlegen einer extension-Methode?
InformationsquelleAutor der Antwort user2687864
Sehe ich nicht, warum Microsoft nicht damit umgehen. Eine intelligente kleine utility-Methode, um damit umzugehen (ich hatte das Problem mit int, aber der Austausch mit int DateTime wird der gleiche Effekt sein könnte.....
InformationsquelleAutor der Antwort JStrahl