Ich habe 2 Nullable DateTimes, also subtrahieren sie führt zu einem Nullable TimeSpan. Ich möchte dazu .Value
anrufen.Visual Studio 2012 erkennt keine Nullable-Typen
jedoch die automatische Vervollständigung Dropdown-Liste der Ansicht, dass die Art in den Klammern eine normale Timespan ist. .Value
ist nicht in der Liste, und wenn ich einen der Vorschläge verwende, kompiliert es nicht. Es kompiliert, wenn ich .Value
manuell eintippe.
Das gleiche Problem tritt auf, wenn nur eine der DateTimes NULL-Werte zulässig sind. Es tritt auch auf, wenn ich einen TimeSpan?
zu einem DateTime?
hinzufüge, der in DateTime?
resultiert. Intellisense denkt, dass es ein DateTime
ist.
Ist dies ein Problem mit Visual Studio intellisense? Ich bin bei Update 3, ich habe kein ReSharper. Das gleiche Problem auf einem anderen Computer.
Bearbeiten: um klar zu sein, stelle ich eine Frage darüber, warum Intellisense den falschen Typ vorschlägt. Ich weiß, was ich schreiben soll, um den Code kompilieren zu lassen.
Seltsam, was passiert, wenn Sie Besetzung ist als Zeitspanne, dh. '(TimeSpan) (Datum1 - Datum2) .'? – JMK
@JMK es tut das Casting zuletzt, also das gleiche Verhalten. Willst du das Ganze in Klammern setzen? '((TimeSpan?) (Date1 - date2)). Value' funktioniert korrekt. – Tom
War vor allem aus Neugier gefragt, wird interessiert sein zu wissen, wie es sich herausstellt :) – JMK