J'ai une petite question. Quelque chose semble vraiment faux avec ce code. Je veux profiter des génériques et des délégués et peut-être même des délégués génériques s'il y a lieu. Je travaille avec des api générés par code et les objets générés sont très similaires. Je vois qu'ils implémentent tous une interface donc je devais essayer de créer une classe avec quelques méthodes pour gérer les différents scénarios. Voici un exemple de code. Cela semble juste mal à tant de niveaux. S'il vous plaît dites-moi comment je peux améliorer ce code. Un petit conseil de refactoring si vous voulez. Et par tous les moyens déchirer en lambeaux. Je veux mieux coder et apprendre à faire les choses correctement.Affecter un délégué en fonction d'un type?
private delegate IsomeEntity DisplayDelegate(IsomeEntity display);
public IsomeEntity Display<T>()
{
DisplayDelegate _del = null;
IsomeEntity display = factory.CreateObject(typeof(T).Name);
if (display.GetType() == typeof(ADisplayEntity))
_del = ADisplayEntity;
if (display.GetType() == typeof(BDisplayEntity))
_del = BDisplayEntity;
if (display.GetType() == typeof(CDisplayEntity))
_del = CDisplayEntity;
return _del(display);
}
public ADisplayEntity ADisplayEntity(IsomeEntity display)
{
ADisplayEntity ade = display as ADisplayEntity;
try
{
ADisplay o = new ADisplay();
ADisplayEntity response = o.ADisplay(ade);
return response;
}
catch (Exception ex)
{
Exception newEx;
if (someExceptionHandler.HandleException(ex, this, out newEx))
throw newEx;
}
return null;
}
public BDisplayEntity BDisplayEntity(IsomeEntity display)
{
BDisplayEntity dde = display as BDisplayEntity;
try
{
BDisplay o = new BDisplay();
BDisplayEntity response = o.BDisplay(bde);
return response;
}
catch (Exception ex)
{
Exception newEx;
if (someExceptionHandler.HandleException(ex, this, out newEx))
throw newEx;
}
return null;
}
Je pense qu'il veut que le code dans la méthode d'affichage de sorte qu'il n'a pas de préciser chaque fois qu'il veut un ISomeEntity – Randolpho