title: Explicit Override Using Automatic Property
body: <p>I'm trying to use a C++/CLI auto-implemented property to explicitly override an interface.  In particular, I have written (in C++/CLI)</p>
  
  <pre><code>interface IInterface
  {
      property Object ^MyProperty
      {
          Object ^get(void);
          void set(Object^);
      }
      void Method(void);
  }
  </code></pre>
  
  <p>To explicitly consume <code>IInterface</code> in C#, one would write</p>
  
  <pre><code>class MyClass : IInterface
  {
      Object IInterface.MyProperty { get; set;}
      void IInterface.Method()
      {
      }
  }
  </code></pre>
  
  <p>C++/CLI does not support EII, but it does support explicit overrides.  For example, one can write </p>
  
  <pre><code>sealed ref class MyClass : IInterface
  {
  private:
      virtual void method(void) = IInterface::Method {}
  public:
      property Object ^MyProperty;
  }
  </code></pre>
  
  <p>I want to define my explicit override using an auto-implemented property, but </p>
  
  <pre><code>sealed ref class MyClass : IInterface
  {
  private:
      virtual void method(void) = IInterface::Method {}
      property Object ^myProperty = IInterface::MyProperty;
  }
  </code></pre>
  
  <p>yields the compiler errors <code>C2146</code>: Missing <code>;</code> before identifier <code>Object</code>, <code>C2433</code>: <code>virtual</code> not permitted on data declarations, <code>C4430</code>: Missing type specifier, and <code>C3766</code>: Interface member not implemented.  Am I missing something?  What is the appropriate C++/CLI syntax to achieve what I seek?</p>