J'ai déjà posé cette question mais je ne pense pas que je me suis clairement expliqué, donc je vais essayer à nouveau.Renvoyer une liste différente selon le générique
J'ai le code ci-dessous;
public interface IDocumentMerger
{
List<???????> Process();
}
public class EmailMerger : IDocumentMerger
{
public void Process()
{
return new List<MailMessage>();
}
}
public class DocumentMerger<T> where T : IDocumentMerger
{
public T objMerger;
public DocumentMerger()
{
Type t = typeof(T);
objMerger = (T)Activator.CreateInstance(t);
}
public List<???????> Process()
{
return objMerger.Process();
}
}
Je veux utiliser ce qui précède comme ceci;
DocumentMerger<EmailMerger> merger = new DocumentMerger<EmailMerger>();
List<MailMessage> messages = merger.Process();
DocumentMerger<SmsMerger> merger = new DocumentMerger<SmsMerger>();
List<SmsMessage> messages = merger.Process();
Mais je ne peux pas comprendre comment retourner soit une liste de type MailMessage ou une liste de type SmsMessage selon que je crée un DocumentMerger passage int soit MailMerger ou SmsMerger.
Je voulais créer un type d'usine pour que vous appeliez un seul objet et que vous changiez simplement le type et donc le type retourné. le but était de faciliter la tâche des autres utilisateurs – griegs
Comment faciliter une nouvelle usine par type plutôt que de créer un type? –