¿Cómo agregar una función en cada clase en vb.net y hacer que use una variable local?

Tengo algunas clases similares, cada una de ellas tiene un "Valor" constante. Necesito una función simple en cada clase, llamada "Registrarse", que devolverá el texto. Value & ".REGISTER".

Traté de usar Inherits en cada clase. Agrega la función, pero ¿cómo accedo a una variable local en este caso?

Editar: se dijo en las respuestas que debería usar MustOverride y Overrides. Pero en mi caso una función debería ser Shared, ¿hay alguna posible solución?

preguntado el 01 de julio de 12 a las 08:07

¡Gracias! Parece que tengo que definir la propiedad MustOverride en la clase base:

2 Respuestas

Coloque el valor constante en la clase principal que se hereda.

Alternativamente, declarar la propiedad Debe anularse en la clase padre y uso Anulaciones en las clases para niños.

Respondido 01 Jul 12, 08:07

Tiene que ser diferente para cada clase que hereda la función: Konstantin Pereiaslov

Respuesta editada, puede usar MustOverride y Overrides en su lugar. - Rey Skippus

¡Gracias! ¡Esto funciona! Pero en mi aplicación se compartieron todas las funciones, por lo que no tengo que declarar todas las clases, solo llamar a las funciones cuando sea necesario. Pero MustOverride y Overrides parecen ser incompatibles con Shared. ¿Hay alguna forma de hacer lo mismo con las funciones compartidas? - Konstantin Pereiaslov

No creo que sea posible anular las propiedades compartidas como lo que está tratando de hacer. Sin embargo, hay un par de soluciones alternativas que quizás desee analizar, que se explican en detalle aquí: blogs.msdn.com/b/kirillosenkov/archive/2008/02/06/… - Rey Skippus

No soy un experto, pero tal vez pueda pasar el VALOR en su función de Registro. lo que quiero decir es que su función de registro parece

Lo siento pero la solución está en C#. Ha pasado mucho tiempo desde que usé vb. Pero supongo que te harás una idea.

  public String Register(Integer VALUE)
    {
    ....
     Return Value + ".REGISTER";
    }

y pasar los valores constantes en los parámetros.

La otra solución, que supongo que no es tan eficiente, pero podría ser lo que necesita.

puede crear la función Registrarse en una clase estática. De esta manera, no necesita heredar la clase, sino que simplemente puede llamar a la función por el nombre de la clase.

public static Class A
{
public String Register(Integer Value){...}
}

y llamar a la función en otra clase como

Public class B{
public const int VALUE = 12;
String res = A.Register(A);
}

Respondido el 29 de enero de 14 a las 17:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.