2009-05-13 3 views

Répondre

6

Vous pouvez spécifier un événement dans une interface, mais vous ne pouvez pas déclarer un délégué (ou tout autre type) - du moins pas en C#. Par exemple:

// Valid 
public delegate void BarHandler(object sender, EventArgs e);   
public interface IFoo 
{ 
    event BarHandler Bar; 
} 

// Invalid 
public interface IFoo 
{ 
    delegate void BarHandler(object sender, EventArgs e);   
    event BarHandler Bar; 
} 
+0

Pourquoi un délégué ne peut pas être déclaré dans une interface? Quelle est la logique des concepteurs de langage? –

+0

@SukhdevZala: Eh bien, vous ne pouvez pas déclarer * n'importe quel type * dans une interface en C#. La seule raison de le faire serait de qualifier le nom du type, fondamentalement ... cela ne ferait pas partie de ce qu'un type implémentant l'interface fournirait. –

Questions connexes