Bonjour,
un truc que je ne pige pas! Pourquoi ne peut-on pas caster un tableau d'objet.

Par ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
static void Main( string[] args )
{
            ArrayList oList = new ArrayList();
 
            for (int i = 0; i < 100; i++)
                oList.Add( i );
 
            int[] o = (int[])oList.ToArray();
....
}
ne compile pas car "Impossible de convertir le type 'object[]' en 'int[]'

de même un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 int[] o = oList.ToArray() as int[]
ne compile pas

En fait j'ai remarqué ce comportement en codant une méthode générique
et

Code : Sélectionner tout - Visualiser dans une fenêtre à part
return new List<T>( p_oList.ToArray() as T[] );
compile mais renvoi une exception car
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 p_oList.ToArray() as T[]
renvoi null

J'aimerai bien comprendre le pourquoi de tout ça...
Merci de vos éclaircissements