2010-04-29 14 views
7

¿Cuál es el entero que puede contener nulos y dónde se puede usar?Número entero anulable en .NET

+3

Eliminé las etiquetas ASP.NET (-MVC), ya que esto no está realmente relacionado con estas dos tecnologías (es una característica general de .NET). – M4N

+0

Tenga en cuenta que, desde .NET 2.0, todos los tipos de valores se pueden declarar como anulables, no solo 'int'. http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx –

Respuesta

15

El entero nulable int? o Nullable<int> es un tipo de valor en C# cuyo valor puede ser null o un valor entero. Por defecto es null en lugar de 0, y es útil para representar cosas como value not set (o lo que quieras que represente).

+1

También válido en VB - Dim myInt As Integer? –

+0

'Dim myint como Nullable of Integer '??' –

0

Im suponiendo que decir int? x; que es la abreviatura de Nullable<int> x;

Esta es una manera de añadir valores nulos para tipos de valor, y es útil en escenarios tales como procesamiento de base de datos donde los valores también pueden establecerse a null. Por defecto, un tipo anulable contiene nulo y usted usa HasValue para verificar si se le ha dado un valor. Puede asignar valores y usarlos como un tipo de valor normal.

+0

Esta no es una sintaxis válida de C#. 'var' se debe usar en lugar de declarar el tipo de una variable, es decir, cuando el tipo de variable se puede deducir de su uso. –

+0

Demasiado javascript. Fijo. –

8

Un entero nullable se puede usar de varias formas. Puede tener un valor o nulo. Me gusta aquí:

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. 
} 

Digamos que quiere saber la edad de una persona. Está ubicado en la base de datos SI la persona ha enviado su edad.

int? age = GetPersonAge("Some person"); 

Si, como la mayoría de las mujeres, la persona no ha enviado su edad, la base de datos contendrá nulo.

A continuación, comprueba el valor de age:

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

int? año;

podría ponerlos en las acciones de su controlador y si la URL no contenía el año año, el parámetro sería nulo, en lugar de predeterminarlo a 0, que podría ser un valor válido para su aplicación.

0

Un tipo anulable aceptará su tipo de valor y un valor nulo adicional. Útil para bases de datos y otros tipos de datos que contengan elementos a los que podría no asignarse un valor.

0

Siempre que no pueda predecir el resultado o la salida de la lógica de negocios particular, vaya con tipos que aceptan nulos.

El tipo de valor predeterminado (Ej. Int) no puede ser nulo. Realiza un error al intentar asignar un valor nulo. Pero los tipos que aceptan nulos no lo harán.

Gracias.