Небольшой вопрос о языке языка С#:))
Если бы у меня был такой интерфейс:
interface IFoo {
int Value { get; set; }
}
Можно явно реализовать такой интерфейс, используя автоматически реализованные свойства С# 3.0:
sealed class Foo : IFoo {
int IFoo.Value { get; set; }
}
Но если у меня было событие в интерфейсе:
interface IFoo {
event EventHandler Event;
}
И попытка явно реализовать его с помощью полевого события:
sealed class Foo : IFoo {
event EventHandler IFoo.Event;
}
Я получаю следующую ошибку компилятора:
error CS0071: An explicit interface implementation of an event must use event accessor syntax
Я думаю, что полевые события являются своего рода дуализмом для автоматически реализованных свойств.
Итак, мой вопрос: какова причина дизайна для такого ограничения?