2009-05-13 3 views

ответ

6

Вы можете указать событие в интерфейсе, но вы не можете объявить делегат (или любой другой тип) - по крайней мере, не на C#. Например:

// 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

Почему делегат не может быть объявлен в интерфейсе? Какая в нем логика дизайнеров? –

+0

@SukhdevZala: Ну, вы не можете объявить * любой * тип внутри интерфейса в C#. Единственная причина для этого - квалифицировать имя типа, в основном ... это не будет частью того, что обеспечит тип, реализующий интерфейс. –

Смежные вопросы