Para que una clase sea estatica, simplemente tenes que poner antes del nombre la palabra "static", y lo mismo tenes que hacer para los metodos que queres que sean estaticos:
static public class MiClase
{
static public void MiMetodo()
{
}
}
Pero supongo que lo que queres saber bien es como crear tus propios eventos. No es complicado, te explico:
Primero tenes que crear un delegado, que es una definicion de los parametros que va a tener el evento. Cuando un evento se genera, pasa ciertos parametros a los metodos que van a manejar el evento, esos parametros se definien en delegados.
Se hace asi:
public delegate void MiDelegado(string parametro1, int parametro2);
(Yo puse esos dos parametros como ejemplo, pero podes poner los que quieras)
Una cuestion a tener en cuenta, es que tenes que definir bien los parametros para que tu evento pueda devolver toda la informacion referida a lo que sucedio.
Un estandar es usar solamente dos:
- un object llamado "sender", que representara la entidad (objeto) que genero el evento
- un objeto llamado "e", de una clase que creas vos heredando la System.EventArgs
Esa clase derivada de System.EventArgs es para que despues los metodos manejadores de tu evento sean compatible con metodos manejadores de eventos de controles estandar de windows, entre otras cosas (no parece gran cosa, pero mas de una vez es algo hasta obligatorio).
Entoces, dentro de tu clase, tendrias definida otra clase asi:
public class MisParametros : System.EventArgs
{
public string MiDato1;
public int MiDato2;
public double MiDato3;
}
Dentro de esa clase meterias todos los datos que tu evento va a devolver, y despues simplemente definis el delegado asi:
public delegate void MiDelegado(object sender, MisParametros e);
Despues de definir el delegado, sea estandar o no, tenes que definir un evento que adhiera al formato de ese delegado. Esto lo haces asi:
public event MiDelegado MiEvento;
Con eso, tu clase ya tiene un evento creado, pero nunca se dispara. Dentro de tu clase, en el momento que tengas que disparar el evento (dentro de algun metodo) vas a tener que poner esto:
try
{
MiEvento("valores parametros", 1);
}
catch { }
Fijate dos cosas:
1) esta en un bloque try catch. Hacelo siempre, porque si no le asignaste ningun manejador entonces va a tirar un error.
2) Si usaste el estandar de usar los parametros como sender y e, tendrias que hacer esto:
MisParametros NuevoE = new MisParametros();
NuevoE.MiDato1 = "valor 1";
NuevoE.MiDato2 = 2;
NuevoE.MiDato3 = 4.5;
try
{
MiEvento(this, NuevoE);
}
catch { }
(El "this", si no lo sabes, es para hacer referencia a tu clase, que es desde donde se genero el evento)
Nunca lo probe para clases estaticas, pero en teoria deberia funcionar igual que con clases comunes. Si no funciona decime, y me fijo que hay que cambiar.
Espero haber ayudado. Suerte.
Chau
Fisa
Correo:
[email protected]
MSN:
[email protected]