Ok ... dans Objective C vous pouvez créer une sous-classe à partir d'une méthode statique dans la classe de base avec 'new this()' car dans une méthode statique, 'this' fait référence à la classe, pas l'instance. C'était une super trouvaille quand je l'ai trouvé et je l'ai souvent utilisé.Appel de constructeur de sous-classe à partir de la méthode de classe de base statique
Cependant, en C# cela ne fonctionne pas. Zut! Alors ... quelqu'un sait comment je peux «créer» une sous-classe à partir d'une méthode de classe de base statique?
Quelque chose comme ça ...
public class MyBaseClass{
string name;
public static Object GimmeOne(string name){
// What would I replace 'this' with in C#?
return new this(name);
}
public MyBaseClass(string name){
this.name = name;
}
}
// No need to write redundant constructors
public class SubClass1 : MyBaseClass{ }
public class SubClass2 : MyBaseClass{ }
public class SubClass3 : MyBaseClass{ }
SubClass1 foo = SubClass1.GimmeOne("I am Foo");
Et oui, je sais que je peux (et ne devraient normalement) il suffit d'utiliser les constructeurs directement, mais nous avons un besoin spécifique d'appeler un membre partagé sur la classe de base c'est pourquoi je demande. Encore une fois, l'objectif C me laisse faire ça. En espérant que C# le fasse aussi.
Alors ... tout preneur?
Je suis également habitué à Objective-C et essaye réellement de comprendre comment faire ceci en C++. Je suppose que si C# ne peut pas le faire, C++ ne sera pas en mesure de :( –