Como todos sabemos, hay dos tipos diferentes de C#
• Tipo Refrence
• Tipo de valor
tipo referencia se puede representar como el valor existente no (NULO) pero el tipo Vaue, sin embargo, no puede representa el valor NULL
Por ejemplo
Desde cadena es del tipo de referencia se puede declarar como nulo
String s=null; //ok
Pero si intenta declarar tipo de valor tales como Int32 en nulo que produceses error del compilador
Int32 i=null; // compiler error
Para representar nulo en un tipo de valor, debe usar una construcción especial llamada tipo anulable. ¿Está representado usando? símbolo.
Int32? I=null; //now its ok
Ahora escenario cuando commanly utilizan tipos anulables es en la programación de base de datos donde calss es el mapa de la tabla con columnas anulables.
• Si las columnas son del tipo de referencia String como (dirección de correo electrónico y dirección del cliente), no hay problema ya que puede definirlo como nulo en C#
• Pero si las columnas son de tipo de valor doble como (saldo de la cuenta del cliente), no puede asignarlo a C# sin usar tipos que aceptan nulos.
Para por ejemplo
// maps a una mesa de atención al cliente en una base de datos
public class Customer
{
...
public decimal? AccountBalance;
}
posible duplicado de http://stackoverflow.com/questions/1550909/coding-practices-for-c-nullable-type – Ether