J'ai une ArrayList contenant divers objets de différents type (Class1, Class2,..., ClassN)
avec un traitement spécifique pour chacun d'entre eux.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ArrayList list = new ArrayList();
 
list.Add(new Class1(argument1, argument2));
list.Add(new Class2(argument1, argument2));
list.Add(new ClassN(argument1, argument2));
 
foreach (object monObject in list)
{
    if (monObject is Class1)
    {
        // Traitement pour un objet de type Class1
    }
    if (monObject is Class2)
    {
        // Traitement pour un objet de type Class2
    }
    if (monObject is ClassN)
    {
        // Traitement pour un objet de type ClassN
    }
}
J'aimerais trouvé un moyen un peu plus astucieux que le bout de code qui suit

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
if (monObject is Class1)
{
    // Traitement pour un objet de type Class1
}
if (monObject is Class2)
{
    // Traitement pour un objet de type Class2
}
if (monObject is ClassN)
{
    // Traitement pour un objet de type ClassN
}