Je suis/j'essayais de créer un événement auquel mon formulaire principal peut s'abonner. Cette classe sera finalement plus grande, c'est pour faire des infos/avertissements/informations d'erreur à l'observateur d'événements Windows (n'ont pas encore fait cette partie) mais il envoie aussi des informations sur le formulaire. J'ai utilisé des événements dans de nombreux endroits, mais c'est la première fois que j'essaie d'en faire un dans une classe statique. Je ne pensais pas qu'il y aurait des problèmes, mais je reçois cette erreur "raiseEventtoForm: ne peut pas déclarer les membres de l'instance dans une classe statique." Tous mes membres sont statiques, je ne sais pas pourquoi cela se passe. Est-ce que je ne peux pas produire d'événements dans une classe statique?Un événement statique tente de déclarer une instance non statique
Je ne trouve rien indiquant que je ne serais pas autorisé à le faire.
Modifier: délégué mis à jour pour ne pas avoir de mot-clé statique.
public static class HABLAEvents
{
public delegate void RaiseMessageEvent(string message, Color foreColor, Color backColor);
public static event RaiseMessageEvent trigger = delegate { };
public static void MessageEvent(string message, Color foreColor, Color backColor) { trigger(message, foreColor, backColor); }
public static void raiseEventtoForm(string message, Color fc, Color bc)
{
MessageEvent(message, fc, bc);
}
}
Edit: Cette même erreur « ne peut pas déclarer les membres d'instance dans une classe statique » est également présent pour déclencheur et MessageEvent
Je pense que cette ligne est incorrect: délégué static public void RaiseMessageEvent (message de chaîne, couleur foreColor, couleur backColor); un délégué est en fait un type il ne peut pas être statique ... –
aussi la deuxième ligne devrait être déclencheur public événement statique RaiseMessageEvent; –
Ouais- Quand j'ai fait un nettoyage/build ces erreurs en ligne ont disparu et il a surgi en disant que mon délégué ne pouvait pas avoir statique. J'ai enlevé ça et ça s'est bien passé. Je le teste pour m'assurer qu'il fonctionne ATM. Faire des modifications pour publier maintenant. – alykins