Je comprends que la méthode statique de l'héritage n'est pas pris en charge en C#. J'ai aussi lu un certain nombre de discussions (y compris ici) dans lequel les développeurs affirment la nécessité de cette fonctionnalité, à laquelle la réponse typique est "si vous avez besoin d'membre statique de l'héritage, il y a une faille dans votre conception".
OK, étant donné que la programmation orientée objet ne veut pas que j'y pense même héritage statique, je dois conclure que mon apparente besoin de points pour une erreur dans mon design. Mais, je suis coincé. Je voudrais vraiment l'apprécier un peu d'aide de la résolution de cette. Voici le défi ...
Je veux créer une classe de base abstraite (un Fruit) qui encapsule certains complexes de code d'initialisation. Ce code ne peut pas être placé dans le constructeur, puisque certains de il va s'appuyer sur les appels de méthode.
Les fruits seront héritées par d'autres classes concrètes (Pomme, Orange), dont chacun doit exposer un standard de l'usine de la méthode CreateInstance() pour créer et initialiser une instance.
Si le membre statique de l'héritage était possible, je mets en place l'usine de la méthode dans la classe de base et de l'utilisation d'une méthode virtuelle appel à la classe dérivée pour obtenir le type de qui un béton instance doit être initialisé. Le code du client serait simple invoquer Apple.CreateInstance() pour obtenir une entièrement initialisé Apple instance.
Mais clairement, ce n'est pas possible, si quelqu'un peut expliquer comment mes besoins de conception de changer pour répondre à la même fonctionnalité.