Konvertiert die Zeichenfolge in eine DateTime-Nullwertvariable in einer Zeile

8

Wie kann ich schreiben

? %Vor%

Dies löst einen Kompilierzeitfehler aus. Ich weiß, dass ich tryparse or do if {} machen kann. Gibt es eine Möglichkeit, dies in einer Zeile zu tun?

    
coder net 01.12.2011, 20:11
quelle

4 Antworten

25

Versuchen Sie, den bedingten Operator ?: anstelle von null-koaleszierender Operator ?? :

%Vor%

Sie müssen den Nullwert auch in DateTime? umwandeln, sonst erhalten Sie einen Kompilierungsfehler.

    
Mark Byers 01.12.2011, 20:13
quelle
3
%Vor%     
AD.Net 01.12.2011 20:16
quelle
2

Diese Lösung weist null nicht nur der Nullable DateTime dt zu, wenn die Zeichenfolge date null ist, oder einer leeren Zeichenfolge, sondern auch, wenn sie eine ungültige Datumsdarstellung enthält:

%Vor%

Die if-else-Anweisung kann durch einen einzeiligen ternären Ausdruck ersetzt werden, jedoch nicht durch die Deklaration von temp :

%Vor%     
Olivier Jacot-Descombes 01.12.2011 20:21
quelle
1
%Vor%     
Shankar Damodaran 01.12.2011 20:14
quelle

Tags und Links