come tutti sappiamo ci sono due tipi diversi in C#
• Tipo di refrence
• Tipo di valore
tipo di riferimento può essere rappresentare come valore esistente non (NULL), ma il tipo vaue, tuttavia, non può rappresenta il valore NULL.
Per esempio
Da stringa è tipo di riferimento si può dichiarare nullo
String s=null; //ok
Ma se si tenta di dichiarare tipo valore tale Int32 Null esso produceses errore di compilatore
Int32 i=null; // compiler error
Per rappresentare il valore null in un tipo di valore, è necessario utilizzare un costrutto speciale denominato un tipo nullable. È rappresentato usando? simbolo.
Int32? I=null; //now its ok
Ora scenario quando tipi nullable commanly utilizzati è nella programmazione di database in cui è calss mappa per tabella con colonne nullable.
• Se le colonne sono un tipo di riferimento che è String come (indirizzo e-mail e indirizzo cliente), non c'è alcun problema in quanto è possibile definirlo come nullo in C#
• Ma se le colonne sono di tipo di valore doppio come (saldo del conto del cliente), non è possibile associarlo a C# senza utilizzare i tipi nullable.
Per es
mappe ad un tavolo al cliente in una banca dati //
public class Customer
{
...
public decimal? AccountBalance;
}
fonte
2010-04-13 05:26:31
possibile duplicato di http://stackoverflow.com/questions/1550909/coding-practices-for-c-nullable-type – Ether