2010-04-29 18 views
7

Was ist die Nullable Integer und wo kann es verwendet werden?Nullable Ganzzahl in .NET

+3

Ich entfernte die ASP.NET (-MVC) -Tags, da dies wirklich nicht mit diesen beiden Technologien zusammenhängt (es ist eine allgemeine .NET-Funktion). – M4N

+0

Beachten Sie, dass seit .NET 2.0 alle Werttypen als nullable deklariert werden können, nicht nur "int". http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx –

Antwort

15

Die Nullable-Ganzzahl int? oder Nullable<int> ist ein Werttyp in C#, dessen Wert null oder ein ganzzahliger Wert sein kann. Es ist standardmäßig null anstelle von 0, und ist nützlich für die Darstellung von Dingen wie value not set (oder was auch immer Sie es darstellen möchten).

+1

Auch gültig in VB - Dim MyInt As Integer? –

+0

'Dim myint als Nullable of Integer '?? –

0

Im vorausgesetzt, Sie int? x; bedeuten, die eine Abkürzung ist für Nullable<int> x;

Dies ist eine Möglichkeit, NULL-Werte Werttypen hinzuzufügen, und ist nützlich in Szenarien wie Datenbankverarbeitung, wo Werte können auch auf null gesetzt werden. Standardmäßig enthält ein nullwertfähiger Typ null und Sie verwenden HasValue, um zu prüfen, ob ein Wert angegeben wurde. Sie können Werte zuweisen und sie ansonsten wie einen normalen Werttyp verwenden.

+0

Dies ist keine gültige C# -Syntax. "var" sollte verwendet werden, anstatt den Typ einer Variablen zu deklarieren, d. h. wenn der Variablentyp aus seiner Verwendung abgeleitet werden kann. –

+0

Zu viel Javascript. Fest. –

8

Eine nullbare ganze Zahl kann auf verschiedene Arten verwendet werden. Es kann einen Wert oder null haben. Wie hier:

int? myInt = null; 

myInt = SomeFunctionThatReturnsANumberOrNull() 

if (myInt != null) { 
    // Here we know that a value was returned from the function. 
} 
else { 
    // Here we know that no value was returned from the function. 
} 

Angenommen, Sie das Alter einer Person wissen wollen. Es befindet sich in der Datenbank, wenn die Person ihr Alter angegeben hat.

Wenn die Person, wie die meisten Frauen, ihr Alter nicht angegeben hat, dann enthält die Datenbank null.

Dann überprüfen Sie den Wert age:

if (age == null) { 
    // The person did not submit his/her age. 
} 
else { 
    // This is probably a man... ;) 
} 
0

int? Jahr;

Sie könnten sie in Ihre Controller-Aktionen einfügen und wenn die URL nicht das Jahr Parameter Jahr enthalten würde Null, im Gegensatz zu Standard auf 0, die ein gültiger Wert für Ihre Anwendung sein könnte.

0

Ein Nullable-Typ akzeptiert seinen Werttyp und einen zusätzlichen Nullwert. Dies ist nützlich für Datenbanken und andere Datentypen, die Elemente enthalten, denen möglicherweise kein Wert zugewiesen wurde.

0

Wenn Sie das Ergebnis oder die Ausgabe aus der jeweiligen Geschäftslogik nicht vorhersagen konnten, sollten Sie NULL-Typen verwenden.

Der Standardwerttyp (Bsp. Int) darf nicht null sein. Es wird ein Fehler ausgegeben, während versucht wird, einen Nullwert zuzuweisen. Aber die Nullable-Typen werden das nicht tun.

Danke.