Principales respuestas
Reutilizar método de un formulario base

Pregunta
-
Hola.
Trabajando con vb.net 2013 framework 4.0
Tengo un formulario base que tiene ciertas propiedades, procedimientos y funciones.
Entre las funciones tengo estas
Public Sub NuevoProceso() If Nuevo_Validar() = False Then Return End If lNuevoEstado = True lEditarEstado = True Objetos_Habilitar() Objetos_Blanquear() End Sub
Public Function Nuevo_Validar() As Boolean
Return FalseEnd Function
Cuando creo un nuevo formulario, heredo del formulario base, al ejecutar el procedimiento NuevoProceso, necesito ejecutar una nueva versión Nuevo_Validar, que necesito escribirla en el nuevo formulario, ya que el usuario podría o no tener permisos para hacer Nuevo.
Como puedo hacer para sobre escribir la función y de ser necesario sobre escribir y ejecutar el código del objeto padre.
Mi experiencia con VB.net es poca y estoy tratando de aprovechar en algo la herencia.
Saludos
Mauricio
Respuestas
-
La palabra clave es MyBase:
If MyBase.Nuevo_Validar() = False Then ...
https://msdn.microsoft.com/en-us/library/dzfhkk01(v=vs.90).aspx- Marcado como respuesta mpulla lunes, 24 de julio de 2017 23:02
Todas las respuestas
-
Para suplantar la función en la clase hija, ponle la palabra Overrides:
Public Overrides Function Nuevo_Validar() As Boolean
Return loQueSeaEnd Function
Y en la clase base, añádele Overridable:
Public Overridable Function Nuevo_Validar() As Boolean
Return FalseEnd Function
- Propuesto como respuesta Renzo20 domingo, 23 de julio de 2017 11:38
-
Hola Alberto.
Gracias funciono perfecto.
Una pregunta más.
Una vez suplantada la función base, es posible llamar a la función base desde la función suplantada, algo como.
Public Overrides Function Nuevo_Validar() As Boolean if Formulario_Base.Nuevo_Validar() = False Then Return False end if Validaciones de la instancia ... .. return End Function
Saludos.
Mauricio
-
La palabra clave es MyBase:
If MyBase.Nuevo_Validar() = False Then ...
https://msdn.microsoft.com/en-us/library/dzfhkk01(v=vs.90).aspx- Marcado como respuesta mpulla lunes, 24 de julio de 2017 23:02