Design de linguagem C #: implementação explícita da interface de um evento
Pequena pergunta sobre o design da linguagem C # :))
Se eu tivesse uma interface como esta:
interface IFoo {
int Value { get; set; }
}
É possível implementar explicitamente essa interface usando propriedades auto-implementadas em C # 3.0:
sealed class Foo : IFoo {
int IFoo.Value { get; set; }
}
Mas se eu tivesse um evento na interface:
interface IFoo {
event EventHandler Event;
}
E tentando implementá-lo explicitamente usando evento do tipo campo:
sealed class Foo : IFoo {
event EventHandler IFoo.Event;
}
Vou receber o seguinte erro do compilador:
error CS0071: An explicit interface implementation of an event must use event accessor syntax
Eu acho que eventos do tipo campo são algum tipo de dualismo para propriedades implementadas automaticamente.
Então, minha pergunta é:qual é o motivo do design para tal restrição?