Bonjour,

je m'interroge sur un point.
J'ai une méthode qui doit ajouter un objet dans une liste si celui-ci n'existe pas déjà dans la liste.

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
void AddObject ( MyClass obj);

Si l'objet a été ajouté à la liste, il faut l'indiquer à l'objet appelant pour qu'il effectue une action.
Si l'objet n'a pas été ajouté à la liste, il faut aussi l'indiquer à l'objet appelant pour qu'il effectue une autre action.

Que vaut-il mieux faire ?
Utiliser un paramètre de retour de type bool:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
if (AddObject(myObj))
      DoAThing();
else
      DoOtherThing();

Ou vaut-il mieux modifier la référence de l'objet pour la faire pointer vers nulle:
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
AddObject(ref myObj);
 
if (myObj==null)
     DoAThing();
else
     DoOtherThing();

Ou vaut-il mieux lancer une exception ?

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
try
{
      AddObject(myObj);
      DoAThing();
}
catch (AddObjectException ex)
{
      DoOtherThing();
}

avec
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public class AddObjectException:Exception
{
    [..]
}

Pourriez-vous m'éclairer sur ce point ?

Merci bien à vous.