title: C# Language Design: explicit interface implementation of an event
body: <p>Small question about C# language design :))</p>
  
  <p>If I had an interface like this:</p>
  
  <pre><code>interface IFoo {
    int Value { get; set; }
  }
  </code></pre>
  
  <p>It's possible to explicitly implement such interface using C# 3.0 auto-implemented properties:</p>
  
  <pre><code>sealed class Foo : IFoo {
    int IFoo.Value { get; set; }
  }
  </code></pre>
  
  <p>But if I had an event in the interface:</p>
  
  <pre><code>interface IFoo {
    event EventHandler Event;
  }
  </code></pre>
  
  <p>And trying to explicitly implement it using field-like event:</p>
  
  <pre><code>sealed class Foo : IFoo {
    event EventHandler IFoo.Event;
  }
  </code></pre>
  
  <p>I will get the following compiler error:</p>
  
  <p><code>error CS0071: An explicit interface implementation of an event must use event accessor syntax</code></p>
  
  <p>I think that field-like events is the some kind of dualism for auto-implemented properties.</p>
  
  <p>So my question is: <em>what is the design reason for such restriction done?</em></p>