C#语言设计:事件的显式接口实现

18 浏览
0 Comments

C#语言设计:事件的显式接口实现

关于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

我认为字段式事件是自动实现属性的某种二元性。

所以我的问题是:为什么有这样的限制?

0