Je suis sûr que je suis en train de déconner avec beaucoup de casting et tel dans ce code ci-dessous. Il semble qu'il devrait y avoir une façon plus douce. Essentiellement, j'essaie d'utiliser une méthode de construction (CreateNewPattern) pour gérer la création de nouveaux objets du type de sous-classe transmis (par les méthodes CreateNewCircularPattern et CreateNewLinePattern). Je n'ai actuellement que deux types sous-classifiés CircularHolePattern et SingleLineHolePattern qui héritent de HolePattern, mais je m'attends à en avoir plus au fur et à mesure que mon application se développe.Création et initialisation de différents sous-types sans beaucoup de coulée
Est-ce un endroit pour utiliser un délégué ou un lambda? Il n'en sait rien, alors soyez aussi précis que possible avec des suggestions de code.
private CircularHolePattern CreateNewCircularPattern()
{
var CreatedPattern = CreateNewPattern(typeof(CircularHolePattern));
return (CircularHolePattern)CreatedPattern;
}
private SingleLineHolePattern CreateNewLinePattern()
{
var CreatedPattern=CreateNewPattern(typeof(SingleLineHolePattern));
return (SingleLineHolePattern)CreatedPattern;
}
private HolePattern CreateNewPattern(Type PatternTypeToCreate)
{
var NewHolePattern = (HolePattern)Activator.CreateInstance(PatternTypeToCreate);
NewHolePattern.PatternName = "Pattern #" + (HolePatterns.Count + 1).ToString();
this.AddPattern(NewHolePattern);
this.SetActivePattern(NewHolePattern);
return NewHolePattern;
}
(commentaire Ajouté (s) re votre question) –