2009-09-14 6 views
6

Existe-t-il un moyen de ne pas être obligé d'inclure des membres avec la propriété MustOverride lorsque vous héritez? Je travaille sur un MembershipProvider personnalisé, et je n'ai besoin que d'un accès à quelques membres. C'est purement esthétique - je déteste juste avoir à bout de 100 lignes de déclarations de membres inutilisées.Juste curieux, un moyen de contourner MustOverride en C#?

Répondre

13

Vous pouvez faire un clic droit sur la classe héritée et sélectionner "Implémenter ceci ..." et elle créera les définitions de méthodes pour vous lancer NotImplementedException() jusqu'à ce que vous réécriviez le code de la méthode.

+0

Spiffy! Cela fait gagner du temps. Merci. –

5

Non, il n'y en a pas. Btw, MustOverride est généralement appelé abstrait en C#. MustOverride (abstract in C#) spécifie qu'il doit être substitué par

+6

Généralement appelé, IS est appelé. – Will

7

Il n'y a pas moyen de contourner cela.

Visual Studio peut remplacer les fonctionnalités pour vous, mais elles doivent exister pour que la classe soit instanciée.

Une autre option: Si vous allez faire plusieurs versions, vous pouvez créer une classe qui implémente les membres (en lançant NotImplementedException, ou ne rien faire), puis dériver de cette classe. Votre version concrète seulement devrait avoir les méthodes spécifiques surchargées que vous souhaitez.

2

Oui, il y a ... Déclarez votre classe aussi comme abstraite! :-P

Maintenant, sérieusement, juste y penser. Si vous ne souhaitez pas implémenter un membre abstrait dans une classe non abstraite, imaginez ce qui se passerait lors de l'exécution, lors de l'appel d'une méthode sans implémentation? En C++, c'était possible, et vous obtiendriez une erreur "Pure virtual function call".

Questions connexes