Dans la programmation orientée objet, les membres non statiques, tels que les variables et les méthodes d'instance, nécessitent qu'une instance d'objet soit accédé. Si vous essayez d'accéder à ces membres non statiques sans créer d'abord un objet, vous rencontrerez l'erreur « Une référence d'objet est requise pour accéder à un membre non statique. »
Une façon de résoudre cette erreur consiste à rendre les membres concernés statiques. Les membres statiques sont associés à la classe elle-même et non à des objets individuels. Cela signifie qu'ils sont accessibles sans instance d'objet.
Par exemple, dans l'extrait de code que vous avez fourni, les méthodes StartClick et StopClick ne sont pas statiques. Pour corriger l'erreur, vous pouvez modifier ces méthodes comme suit :
public static void StartClick(object obj, EventArgs args) {} public static void StopClick(object obj, EventArgs args) {}
Cependant, cela introduirait un état global dans votre application, ce qui n'est généralement pas considéré comme une bonne pratique.
Une autre façon de résoudre l'erreur consiste à créer une instance de la classe. Cela vous permet d'accéder aux membres non statiques via la référence d'instance.
Par exemple, vous pouvez ajouter le code suivant avant d'accéder aux méthodes StartClick et StopClick :
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
En créant une instance de MainClass, vous disposez d'une référence d'objet qui peut être utilisée pour accéder aux membres non statiques.
La décision de savoir s'il faut ou non L'utilisation de membres statiques ou d'instances d'objet dépend des exigences spécifiques de votre application. S’il est crucial d’éviter l’état global, la création d’instances d’objet est l’approche privilégiée. Cela offre une meilleure encapsulation et une meilleure testabilité pour votre code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!