6
votes

Devrais-je appeler la mise en œuvre de la classe de base lorsque vous remplacez une méthode en C # pour ASP.NET?

Je crois comprendre que la méthode / la fonction redéfinit sa mise en œuvre dans la classe dérivée de sa mise en œuvre dans la classe de base.

Qu'est-ce que je me confond, est si je remplace une classe d'ASP.NET tel que crééchécontrols ( ) (je l'ai cueilli au hasard sans raison particulière), VS2008 Auto génère: xxx

suffisamment bon, la mise en œuvre par défaut appelle simplement la classe de base ' Crééchécidcontrols () .

Donc, si je veux exécuter du code, car je ne sais pas comment base.createcheControls () , devrais-je faire ceci: xxx

ou, ignorer ce que base.createcheControls () tout à fait et juste xxx


0 commentaires

5 Réponses :


11
votes

C'est à vous de décider. Généralement, vous souhaitez appeler la méthode de la classe de base car cela pourrait faire beaucoup de choses que vous n'êtes pas au courant (surtout dans une classe, vous ne contrôlez pas .. Obtenez-le? Contrôle.) Mais si vous êtes très confiant vous Vous n'avez pas besoin (ou souhaitez) la classe de base "Stuff" pour arriver, vous pouvez supprimer l'appel.


4 commentaires

C'est vraiment surprenant pour moi que vous seriez autorisé à remplacer une classe de base que vous n'êtes pas au courant.


Je dois avoir cette liberté. Juste parce que je suis votre enfant, ne veut pas dire que je veux faire tout comme toi. Parfois, j'ai besoin de sortir dans le monde et de faire des choses à ma manière. Vous seriez un parent surprotect si vous m'avez forcé à avoir votre mise en œuvre. :)


À partir du fait que j'appelle la classe de base lors de mon Control , concernant Onxxxx Les substituts I Généralement que j'appelle base.onxxxx à la fin de ma méthode dérivée. Existe-t-il une règle générale sur s'il faut appeler base.createcheControls au début ou à la fin de la méthode dérivée?


Cela dépend de la question de savoir si vous dépendez des effets de base.onxxxx () pour que votre code fonctionne ou non. Si vous ne vous souciez pas ou que vous ne savez pas, vous devez l'appeler et l'appeler devant votre propre code, de sorte que la méthode de base fonctionne avec la classe aussi proche de l'état autant que possible.



3
votes

C'est simplement une question de savoir si vous souhaitez remplacer entièrement le comportement ou ajouter un comportement.

Pour quelque chose comme CreatechildControls, vous conserverez probablement l'appel à la classe de base.


0 commentaires

1
votes

Cela dépend de ce que vous voulez faire. Si vous souhaitez que la méthode de base.createceCeControls () soit appelée, vous souhaitez effectuer une action personnalisée avant ou après que la méthode soit appelée, vous pouvez le faire.

Si vous souhaitez avoir un contrôle complet de ce qui se passe lorsque CreatechilControls est appelé, vous pouvez simplement ignorer l'appelant complètement.

Le fait que c'est là par défaut est juste un peu de guidage pour vous.


0 commentaires

0
votes

Cela dépend si vous voulez remplacer ou complet la mise en œuvre de la base ... Dans la plupart des cas, appelez la mise en œuvre de la base (et vous devez définitivement le faire dans le Cas du CreateChilditems Méthode ...)


0 commentaires

0
votes

Vous voudrez peut-être jeter un coup d'œil sur le Modèle de modèle modèle. Bien que vous ne puissiez rien faire de la manière dont les classes de la bibliothèque sont implémentées, cela pourrait vous aider à vous assurer que le code que vous écrivez est facile à utiliser correctement.


0 commentaires