2010-09-03 19 views

Antwort

40

DateTime ein value type sind, die, genau wie int und double, keinen sinnvollen null Wert hat.

In VB.NET, können Sie schreiben:

Dim d As DateTime = Nothing 

Aber all dies tut, ist d zum StandardDateTime Wert einzustellen. In C# wäre der entsprechende Code folgendermaßen aus:

DateTime d = default(DateTime); 

..., die zu DateTime.MinValue entspricht.

Das heißt, es ist die Nullable<T>-Typ, der einen Tnull Wert für jeden Wert Typs bereitzustellen, verwendet wird. Die Abkürzung für Nullable<DateTime> in C# ist DateTime?.

+0

klare und genaue Erklärung ... – Sandeep

4
DateTime? myDate = null; 

Das Fragezeichen gibt Ihnen einen NULL-fähigen Typ. Der, der entweder auf seinen nativen Wert oder auf null gesetzt werden kann.

DateTime selbst ist ein Werttyp. Es kann nicht null sein.

2

Nein, es ist eine Struktur keine Klasse. Machen Sie es zu einem NULL-fähigen Typ, z. System.DatumZeit? meinWert; oder verwenden Sie den System.DateTime.MinValue als Sentinel.

+0

Seien Sie vorsichtig mit Ihrer Formulierung. Nullable ist auch eine Struktur und kann eine Null enthalten. –

4

Nein, Sie können nicht für DateTime ist ein Werttyp.

Sie könnten allerdings bei Nullable<DateTime> aussehen wollen (oder Datetime? Kurzum)

2

Nein - DateTime ist eine Struktur in C# und Strukturen (Werttypen) können nicht null sein.

Sie können jedoch verwenden Nullable<DateTime>.

2

Normalerweise Datetime kann nicht null sein, da ein Typ Wert ist, aber mit der Nullable-Operator in C# 2 eingeführt, können Sie erreichen dies