34 Stimmen

Automatische Generierung von Implementierungen von Basisklassenmethoden

Gibt es eine Abkürzung in C# (VS 2008), um automatisch die virtuellen und abstrakten Basisklassenmethoden in einer abgeleiteten Klasse zu implementieren?

55voto

Jeff Yates Punkte 59874

Für virtuelle Methoden können Sie Folgendes eingeben override und dann ein Leerzeichen. Intellisense sollte Ihnen eine Liste von Optionen anbieten.

Für abstrakte Methoden und Eigenschaften können Sie das Smarttag in der Basisklasse oder Schnittstelle verwenden (auch, Ctrl + . o Shift + Alt + F10 wird das Smarttag-Menü angezeigt), um die konkreten Elemente zu erzeugen.

Im folgenden Codeschnipsel könnten Sie zum Beispiel das Caret am Ende von INotifyPropertyChanged und drücken Sie Ctrl + . und wählen Sie dann Schnittstelle implementieren und die Option PropertyChanged Ereignis würde hinzugefügt werden zu MyClass :

class MyClass : INotifyPropertyChanged
{
}

21voto

Christian C. Salvadó Punkte 763569

Geben Sie einfach die Schnittstelle ein, die Sie implementieren möchten, und klicken Sie dann auf das Smart Tag. Es öffnet sich ein Kontextmenü, in dem Sie entweder Schnittstelle implementieren oder Schnittstelle explizit implementieren auswählen können:

enter image description here

Alle zu überschreibenden Elemente werden in einem Codebereich enthalten sein, der entsprechend seinem Zweck benannt wird.

Alle Mitglieder werden eine Zeile haben, die eine NotImplementedException .

4voto

eKek0 Punkte 22479

Für virtuelle Methoden geben Sie Überschreiben Sie geben Sie einen Raum an und intellisense zeigt Ihnen alle Methoden, die vererbt werden können.

3voto

viggity Punkte 14739

Wie bereits erwähnt, ist das Smarttag (über Ctrl+. y Alt+Shft+F10 ) wird Ihr Problem lösen, aber Visual Studio hat eine lästige Option, die automatisch die generierten Eigenschaften/Methoden mit einer Region wie diese umhüllen wird:

#region INotifyPropertyChanged members
...
#endregion

Sie können diese Funktion aktivieren, indem Sie zu Tools > Options > Text Editor > C# > Advanced . Es gibt ein Kontrollkästchen namens Implement Interface > Surround generated code with #region . Vergewissern Sie sich nur, dass es nicht markiert ist.

3voto

John Punkte 1096

Ich glaube nicht, dass dies existierte, als die ursprüngliche Frage gestellt wurde, aber zumindest ab VS 2013, können Sie automatisch Stubs für abstrakte Methoden und Eigenschaften erstellen. Klicken Sie einfach mit der rechten Maustaste auf den Namen der abstrakten Klasse (in Ihrer Klassendefinition) und wählen Sie "Abstrakte Klasse implementieren". Genau wie CMS zeigte mit automatisch implementieren Schnittstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X