Sommaire

Les types génériques

1. Le type Nullable

Cette fonctionnalité du langage a été ajoutée depuis la version 2 et trouve son socle dans la manipulation de type Nullable. En effet, un type référence correspondant peu ou prou à une adresse peut tout à fait être null. Il en est différemment pour un type valeur. Les types valeurs accédant à une valeur null s’écrivent ainsi :

  • MonType suivi d’un point d’interrogation, comme par exemple les types suivants :

int? ii = 42;  
double? dd = 42.42;  
bool? bb = null;  
char? cc = ’42’;  
double?[] tt = double int?[10];

Deux méthodes permettent de manipuler ces types particuliers :

  • HasValue qui renvoie un booléen true ou false indiquant s’il y a une valeur ou non.

  • Value qui renvoie la valeur (et si HasValue est égal à false, alors Value renvoie null).

On utilise ces deux méthodes de la façon suivante :

int? ii = 42  
if (x.HasValue)  
{  
    System.Console.WriteLine(ii.Value);  
}  
else  
{  
    System.Console.WriteLine("Pas de valeur définie");  
}

2. Construire un type générique basé sur un Nullable

Les types génériques sont issus de System.Collections.Generic et fournissent des classes et des interfaces définissant des collections génériques.

De manière similaire, on peut définir ...