1
Можем ли мы реализовать делегаты и события в интерфейсе?Делегаты и события в интерфейсе?
Можем ли мы реализовать делегаты и события в интерфейсе?Делегаты и события в интерфейсе?
Вы можете указать событие в интерфейсе, но вы не можете объявить делегат (или любой другой тип) - по крайней мере, не на 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;
}
Почему делегат не может быть объявлен в интерфейсе? Какая в нем логика дизайнеров? –
@SukhdevZala: Ну, вы не можете объявить * любой * тип внутри интерфейса в C#. Единственная причина для этого - квалифицировать имя типа, в основном ... это не будет частью того, что обеспечит тип, реализующий интерфейс. –