2009-08-06 25 views
6

¿Alguien sabe de una herramienta o complemento de VS que me permita tomar una clase base y una clase derivada, y colapsarlas en una sola clase "aplanada"? ¿O es esta una operación demasiado difícil, dada la necesidad de lidiar con la resolución de los miembros desautorizados y ocultos/nuevos?Herramienta para fusionar clases de C# base y derivadas

Antecedentes: Estoy trabajando en un proyecto en el que tenemos una clase base y una clase derivada única que iba a ser la primera de algunas otras.

El trabajo de análisis posterior significa que la otra clase ahora no será necesaria y la especialización está resultando confusa para los codificadores que son nuevos en la base de código. Me gustaría fusionar la base y la clase derivada para simplificar las cosas (y simplificar la asignación de la base de datos en nHibernate), pero ambas son bastante grandes, así que pensé que valdría la pena comprobar si una herramienta podría hacer el trabajo.

+0

lo que estás tratando de lograr? –

+1

supongo que ya ha pensado en esto? Definitivamente parece una cosa extraña a querer. ¿Qué hay de malo con sólo usando la clase derivada? – sbi

+0

Algo extraño que quiero hacer, pero sería interesante ver si la herramienta está ahí. –

Respuesta

6

Como a menudo, ReSharper puede ayudarle. Existe una opción (en el menú: Refactor) llamada "extracción de miembros" donde puede seleccionar miembros para moverlos a la clase base.
hay una opción "miembros de empuje hacia abajo para la otra dirección, también.

+0

¡Genial! - Sabía que estas opciones existían, pero solo las había usado para moverme cosas entre las interfaces y las clases de implementación. ¡Gracias! –

+0

Esto funciona, pero está parcialmente automatizado. He registrado la solicitud de características de Resharper https://youtrack.jetbrains.com/issue/RSRP-427649 para obtener una forma de combinar con un clic clase con su única clase derivada. –

Cuestiones relacionadas