2011-09-08 1 views

Répondre

4

int? est un raccourci pour Nullabe<int>.

Nullable<T> est un type de valeur et le paramètre de type générique doit également être un type de valeur.

Un type nullable peut contenir une valeur, ou aucune valeur, par ex.

int? i; // same as Nullable<int> i; 
Console.WriteLine("i.HasValue={0}", i.HasValue); // Writes i.HasValue=False 
i = 10; 
Console.WriteLine("i.HasValue={0}", i.HasValue); // Writes i.HasValue=True 

Vous pouvez utiliser le ?? opérateur (c'est-à-dire null-coalescing operator) avec des types Nullable.

int? i; // i has no value 
// Now we want to add 10 to i, and put it in a, however 
// a = i + 10 cannot work, because there is no value in i 
// so what value should be used instead? 
// We could do the following 
int a = 10; 
if(i.HasValue) 
    a += (int)i; 

// or we could use the ?? operator, 
int a = (i ?? 0) + 10; // ?? returns value of i, or 0 if I has no value 

Le ?? L'opérateur nous permet d'utiliser des types NULL et de fournir directement une alternative significative s'il n'y a pas de valeur.

Questions connexes