2009-09-14 22 views
6

¿Existe alguna forma de no verse obligado a incluir miembros con la propiedad MustOverride cuando hereda? Estoy trabajando en un Proveedor de Membresía personalizado, y solo necesito tener acceso a algunos miembros. Es puramente una cuestión estética. Odio tener que anular 100 líneas de declaraciones de miembros no utilizados.Simplemente curioso, ¿hay alguna forma de evitar MustOverride en C#?

Respuesta

13

Puede hacer clic con el botón derecho en la clase heredada y seleccionar "Implementar esto ..." y creará las definiciones de método para lanzar NotImplementedException() hasta que reescriba el código del método.

+0

Spiffy! Eso ahorra algo de tiempo. Gracias. –

5

No, no lo hay.
Por cierto, MustOverride se suele llamar abstracto en C#.

+6

No suele llamarse, se llama IS. – Will

7

MustOverride (resumen en C#) especifica que se debe anular. No hay forma de evitar esto.

Puede hacer que Visual Studio resuelva las funciones por usted, pero deben existir para poder crear una instancia de la clase.

Otra opción: si va a hacer varias versiones, puede crear una clase que implemente los miembros (lanzando NotImplementedException, o no haciendo nada), y luego derivar de ESA clase. Su versión concreta solo necesitaría tener los métodos específicos anulados que desee.

2

Sí, hay ... ¡Declara tu clase como abstracta, también! :-P

Ahora, en serio, solo piénselo. Si no implementa un miembro abstracto en una clase no abstracta, imagine lo que sucedería en el tiempo de ejecución, cuando llame a un método sin implementación? En C++, esto fue posible, y obtendría un error de "llamada de función virtual pura".

Cuestiones relacionadas