2014-02-20 9 views
22

Ich bin sehr neu in C# und ich habe Zweifel.Wie überprüft man, ob ein DateTime-Feld nicht null oder leer ist?

In einer Anwendung, auf die ich fand mich, wie es in dem Code etwas arbeite:

if (!String.IsNullOrEmpty(u.nome)) 

Dieser Code einfach überprüfen, ob das nome Feld des Objekts u kein leerer \ Null-String ist.

Ok das ist sehr klar für mich, aber was kann ich tun, um es zu überprüfen, wenn ein Feld keine Zeichenfolge ist aber DateTime Objekt?

+0

Ich denke, es ist ziemlich einfach, wenn u .Datefield! = Null? U.Datefield: DateTime.MinValue; –

+1

Fast identisch mit diesem er/sie fragte heute Morgen: http://stackoverflow.com/questions/21904138/how-to-check-if-a-field-is-not-null – LokiSinclair

+0

@LokiSinclair guten Fang –

Antwort

57

Wenn Sie eine Datetime erklären, dann ist der Standardwert DateTime.MinValue, und damit haben Sie es wie folgt zu überprüfen:

DateTime dat = new DateTime(); 

if (dat==DateTime.MinValue) 
{ 
    //unassigned 
} 

Wenn das Datetime-NULL-Werte zulässt, gut das ist eine andere Geschichte:

DateTime? dat = null; 

if (!dat.HasValue) 
{ 
    //unassigned 
} 
7

DateTime ist nicht Standard Nullable Type. Wenn Sie null auf DateTime Typ der Variablen zuweisen möchten, müssen Sie DateTime? Typ verwenden, der Nullwert unterstützt.

Wenn Sie nur Ihre Variable testen möchten gesetzt werden (zB Variable enthält andere als Standardwert), können Sie Schlüsselwort „default“, wie in den folgenden Code verwenden:

if (dateTimeVariable == default(DateTime)) 
{ 
    //do work for dateTimeVariable == null situation 
} 
Verwandte Themen