Maison >développement back-end >C++ >Câblage du gestionnaire d'événements en C# : inférence de délégué ou utilisation explicite d'un délégué ?
Connexion des gestionnaires d'événements C# : inférence de délégué et utilisation explicite des délégués
Les événements en C# permettent un couplage lâche entre les objets et fournissent un mécanisme de gestion des événements externes. Un scénario courant implique de s'abonner dynamiquement aux événements d'un objet externe, pour lequel vous rencontrerez la variation de syntaxe suivante :
<code class="language-c#">[object].[event] += anEvent;</code>
ou
<code class="language-c#">[object].[event] += new EventHandler(anEvent);</code>
Les deux méthodes se ressemblent, mais une compréhension plus approfondie révèle leurs différences subtiles.
Dans la première variante, le compilateur effectue une inférence de délégué pour déterminer automatiquement le type de délégué approprié en fonction de la signature de fonction fournie. Cette syntaxe simplifiée minimise la redondance du code.
Dans la deuxième variante, vous spécifiez explicitement le délégué new
à l'aide du mot-clé EventHandler
. Cette approche était la seule option pour les projets C# 1.0, mais dans C# 2.0 et versions ultérieures, l’inférence de délégué devient l’approche privilégiée.
Quand utiliser l'inférence de délégué
Pour les projets C# 2.0 et supérieurs, l'inférence de délégué est recommandée. Il est concis et améliore la lisibilité du code.
Exemple :
<code class="language-c#">private void Button1_Click(object sender, EventArgs e) { // 事件处理逻辑 } private void Form1_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; }</code>
Dans cet exemple, l'inférence de délégué détermine automatiquement le délégué Button1
correct pour l'événement de clic EventHandler
.
Utilisation explicite des délégués
Bien que l'inférence de délégué soit courante, lorsqu'il s'agit de code existant ou d'optimisation de performances, il peut parfois être nécessaire de spécifier explicitement les délégués. Cependant, l’utilisation explicite des délégués ajoute souvent une verbosité inutile et ne doit être utilisée que lorsque cela est nécessaire.
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!