关于 C# 语言设计的小问题 :))
如果我有这样的界面:
interface IFoo {
int Value { get; set; }
}
可以使用 C# 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
我认为类场事件是自动实现属性的某种二元论。
所以我的问题是:做这种限制的设计原因是什么?