Como declaro un evento en 2005

22/04/2006 - 10:33 por LuisMiguel | Informe spam
Buenas
Tengo el siguiente codigo que en VB2003 funciona correctamente

Interface ILimites

Property DeFecha() As Date

Property AFecha() As Date

Event CodigoMayor()

Event LetraMayor()

Event FechaMayor()

End Interface

Public Class ClsListadosComunes

Implements ILimites

Protected cFeDeFecha As Date

Protected cFeAFecha As Date

Public Event CodigoMayor() Implements ILimites.CodigoMayor

Public Event LetraMayor() Implements ILimites.LetraMayor

Public Event FechaMayor() Implements ILimites.FechaMayor

End class

Al pasarlo a 2005 me da un error del siguiente tipo:

Error 11 'CodigoMayor' no puede exponer el tipo delegado subyacente
'ILimites.CodigoMayorEventHandler' del evento que se implementa fuera del
proyecto a través de class 'ClsListadosComunes'.
C:\SoftNet2005\pruebas\Informes\ClsLimites.vb 73 18 Informes

Como debo declarar el Evento


Gracias
LuisMiguel
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
22/04/2006 - 16:33 | Informe spam
Esto pasa cuando el nivel de acceso de los objetos difiere, es decir, la
interface es privada y la clase es publica, lo que significa que los
delegados que implementan los eventos son privados y por lo tanto no serian
accesibles desde el codigo que utilice la clase. La solucion es declarar la
interface como Public. Si no quieres hacer publica la interface puedes
declarar explicitamente los delegados como publicos (o mejor aun usar
EventHandler) y definir los eventos de la interface usando esos delegados:

Interface Abc

Property DeFecha() As Date

Property AFecha() As Date

Event CodigoMayor As EventHandler

Event LetraMayor As EventHandler

Event FechaMayor As EventHandler

End Interface

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Preguntas similares