Lors de l'appel des rappels de minuterie dans des fonctions distinctes, on peut rencontrer l'erreur « Un objet une référence est requise pour accéder à un champ, une méthode ou une propriété non statique..." Cela se produit lors de l'accès à des membres de classe non statiques dans des méthodes ou des événements statiques.
Pour pour résoudre ce problème, il existe deux options :
Déclarer les rappels et les variables membres comme statiques :
public static void Main (string[] args) { Timer _timer = null; static TimeSpan _millisecs; ... }
Créer une instance de la classe :
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
Le choix entre ces options dépend des exigences de l'application. Si la gestion globale de l’état est préférée, des membres statiques peuvent être utilisés. Alternativement, la création d'une instance offre une meilleure testabilité et une meilleure encapsulation.
Comprendre la cause du message d'erreur permet de prendre des décisions éclairées. L'erreur se produit car les membres non statiques nécessitent l'accès à une instance d'objet, contrairement aux membres statiques.
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!