Περισσότερα
DateTime "null" τιμή
Έχω ψάξει πολύ, αλλά δεν μπόρεσα να βρω λύση. Πώς αντιμετωπίζετε ένα DateTime που θα πρέπει να μπορεί να περιέχει μια μη αρχικοποιημένη τιμή (ισοδύναμη με null); Έχω μια κλάση η οποία μπορεί να έχει μια τιμή της ιδιότητας DateTime ορισμένη ή όχι. Σκεφτόμουν να αρχικοποιήσω τον κάτοχο της ιδιότητας σε DateTime.MinValue, η οποία στη συνέχεια θα μπορούσε εύκολα να ελεγχθεί. Υποθέτω ότι αυτή είναι μια αρκετά συνηθισμένη ερώτηση, πώς το κάνετε αυτό;
261
3
Για τα κανονικά DateTimes, αν δεν τα αρχικοποιήσετε καθόλου, τότε θα ταιριάζουν με το
DateTime.MinValue
, επειδή πρόκειται για τύπο τιμής και όχι για τύπο αναφοράς.Μπορείτε επίσης να χρησιμοποιήσετε ένα nullable DateTime, όπως αυτό:
Ή τη μεγαλύτερη μορφή:
Και, τέλος, υπάρχει ένας ενσωματωμένος τρόπος για να αναφέρετε την προεπιλογή οποιουδήποτε τύπου. Αυτό επιστρέφει
null
για τύπους αναφοράς, αλλά για το παράδειγμά μας DateTime θα επιστρέψει το ίδιο με τοDateTime.MinValue
:Εάν χρησιμοποιείτε το .NET 2.0 (ή νεότερη έκδοση) μπορείτε να χρησιμοποιήσετε τον τύπο nullable:
ή
αργότερα:
Και μπορείτε να ελέγξετε την τιμή με:
Ή μπορείτε να το χρησιμοποιήσετε όπως:
Μπορείτε να διαβάσετε περισσότερα εδώ:
http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx
Θα σκεφτόμουν να χρησιμοποιήσω ένα nullable types.
DateTime? myDate
αντί γιαDateTime myDate
.