¿Existe algún atajo de algún tipo en C# (VS 2008) para implementar automáticamente los métodos de clase base virtual y abstracta en una clase derivada?Generar automáticamente implementaciones de métodos de clase base
Respuesta
Para los métodos virtuales, puede escribir override
y luego un espacio. Intellisense debería ofrecerle una lista de opciones.
Para los métodos abstractos y propiedades, puede utilizar la etiqueta inteligente en la clase base o interfaz (también, Ctrl + . o Shift + Alt + F10 mostrará el menú de etiquetas inteligentes) para generar los elementos concretos.
Por ejemplo, en el siguiente fragmento de código, puede colocar el cursor al final de INotifyPropertyChanged
y pulse Ctrl +. a continuación, seleccione Implementar interfaz, y el evento PropertyChanged
se añadiría a MyClass
:
class MyClass : INotifyPropertyChanged
{
}
Para métodos virtuales escriba anule, proporcione un espacio e intellisense le mostrará todos los métodos que se pueden heredar.
Simplemente escriba la interfaz que desea implementar y, a continuación, haga clic en la etiqueta inteligente, un menú contextual emergente, y luego puede seleccionar Implementar interfaz o Implementar interfaz explícitamente:
Todos los miembros a ser anulado estará contenida dentro de una región de código que se nombra para reflejar su propósito.
Todos los miembros tendrán una línea que arroja un NotImplementedException
.
El OP habla de derivar clase de la clase base y no de implementar interfaces. – Kangkan
Como los otros han mencionado, la etiqueta inteligente (a través de Ctrl+.
y Alt+Shft+F10
) va a resolver su problema, sin embargo Visual Studio tiene una opción molestos, que envolverá automáticamente las propiedades/métodos generados con una región como esta:
#region INotifyPropertyChanged members
...
#endregion
Puede activar esta funcionalidad en Tools > Options > Text Editor > C# > Advanced
. Hay una casilla de verificación llamada Implement Interface > Surround generated code with #region
. Solo asegúrate de que esté desmarcado.
Creo que la región es agradable, ya que señala los métodos relacionados con la interfaz y también hace que todo el grupo sea colapsable. –
No creo que esto exista cuando se formuló la pregunta original, pero al menos a partir de VS 2013, puede crear automáticamente stubs para métodos abstractos & propiedades. Simplemente haga clic derecho en el nombre de la clase abstracta (en su definición de clase) y seleccione "Implementar clase abstracta". Al igual que CMS mostró con interfaces de implementación automática.
CMS hizo clic en la "Etiqueta inteligente", la pequeña caja que aparece debajo de la M en 'MiInterfaz' en su imagen. – Zack
- 1. programación generar métodos para una clase
- 2. ¿Puedo generar automáticamente mis métodos get/set en C#?
- 3. Inferir implementaciones de métodos predeterminados mutuamente dependientes en Scala
- 4. Cómo Generar automáticamente Decorator en C#
- 5. Generar métodos de delegado para una propiedad visible de una clase padre
- 6. jUnit ignorar los métodos de la clase base @test
- 7. ¿Qué métodos existen para generar automáticamente stubs de clientes java a partir de archivos WSDL?
- 8. Clase base vs Clase de utilidad
- 9. Puede Groovy copiar una firma de clase pero modificar implementaciones
- 10. Generar bloques de Java Externalizable readExternal()/writeExternal() automáticamente
- 11. Artefacto: ¿Generar automáticamente el catálogo de arquetipos?
- 12. ¿Es posible generar automáticamente proyectos de Xcode?
- 13. Cómo generar automáticamente proguard-android.txt?
- 14. cómo generar automáticamente C++ cabeceras
- 15. Herencia de Python: ¿se invocan métodos de clase base dentro de la clase secundaria?
- 16. Automapper con clase base y diferentes opciones de configuración para las implementaciones
- 17. ¿Puede Eclipse generar automáticamente una interfaz de una clase de biblioteca de terceros?
- 18. Llamando métodos idénticos en las clases base
- 19. Atajo de teclado de VB.Net para generar automáticamente una propiedad
- 20. Cómo generar contraseñas automáticamente en Rails Devise?
- 21. puede eclipsar generar encadenamiento de métodos set
- 22. Generar WSDL de la clase java \ source
- 23. Implementaciones de cliente y servidor GWT de la misma clase
- 24. Crear un DynamicType en .NET implementando una interfaz pero usando implementaciones de miembro de una clase base
- 25. Generar Lista de métodos de una clase con tipos de método
- 26. Redefina los métodos de clase o clase
- 27. Generar interfaz de clase existente
- 28. ¿Cómo reordenar automáticamente los métodos generados en Netbeans?
- 29. Requerir funciones virtuales anuladas para llamar a implementaciones base
- 30. Llamar a Métodos anulado en clase derivada de la clase Base
Esto funciona bien para las implementaciones de interfaz. Quiero derivar una clase de otra clase y no hay una manera fácil de hacerlo. – Kangkan
@Kangkan: si la otra clase tiene métodos abstractos, funciona de la misma manera que con las interfaces. sin embargo, si tiene métodos virtuales con implementaciones, solo debe anular las que necesita. No estoy seguro de qué "manera fácil" se está perdiendo, pero simplemente escriba "anular" y un espacio como el anterior y le dará un poco de los métodos disponibles. No debería necesitar anularlos a todos. –
Quiero agregar propiedades y métodos adicionales a mi clase mientras mantengo todos los métodos y atributos de la clase base. Por lo tanto, me gustaría obtener los métodos y propiedades implementados como base.method() way. – Kangkan