2009-09-14 5 views
6

Gibt es eine Möglichkeit, nicht gezwungen zu werden, Member mit der MustOverride-Eigenschaft aufzunehmen, wenn Sie erben? Ich arbeite an einem benutzerdefinierten MembershipProvider, und ich brauche nur Zugriff auf ein paar Mitglieder. Es ist eine rein ästhetische Sache - ich hasse es einfach 100 Zeilen ungenutzter Mitgliederdeklarationen auszugeben.Nur neugierig, MustOverride in C#?

Antwort

13

Sie können mit der rechten Maustaste auf die vererbte Klasse klicken und "Implement this ..." auswählen und die Methodendefinitionen für Sie erstellen, indem Sie NotImplementedException() werfen, bis Sie den Methodencode neu geschrieben haben.

+0

Spiffy! Das spart Zeit. Vielen Dank. –

5

Nein, gibt es nicht.
Btw, MustOverride wird normalerweise in C# abstrakt genannt.

+6

Normalerweise nicht aufgerufen, wird IS genannt. – Will

7

MustOverride (Abstrakt in C#) gibt an, dass es überschrieben werden muss. Es gibt keinen Weg darum.

Sie können Visual Studio die Funktionen für Sie stubben, aber sie müssen vorhanden sein, damit die Klasse instanziiert werden kann.

Eine weitere Option: Wenn Sie mehrere Versionen ausführen, können Sie eine Klasse erstellen, die die Member implementiert (NotImplementedException wirft oder nichts tut) und dann von THAT-Klasse ableitet. Ihre konkrete Version müsste nur die spezifischen Methoden überschreiben, die Sie wünschen.

2

Ja, es gibt ... Erklären Sie Ihre Klasse auch als abstrakt! :-P

Nun, ernsthaft, nur darüber nachdenken. Wenn Sie ein abstraktes Element in einer nicht abstrakten Klasse nicht implementieren würden, stellen Sie sich vor, was zur Laufzeit beim Aufruf einer Methode ohne Implementierung passieren würde? In C++ war dies möglich, und Sie erhielten einen Fehler "Reiner virtueller Funktionsaufruf".

Verwandte Themen