title: If an interface defines a ReadOnly Property, how can an implementer provide the Setter to this property?
body: <p><strong>Is there a way for implementers of an interface where a <code>ReadOnly</code> property is defined to make it a complete Read/Write <code>Property</code> ?</strong></p>
  
  <p>Imagine I define an interface to provide a <code>ReadOnly</code> <code>Property</code> (i.e., just a getter for a given value) :</p>
  
  <pre><code>Interface SomeInterface
  
      'the interface only say that implementers must provide a value for reading
      ReadOnly Property PublicProperty As String
  
  End Interface
  </code></pre>
  
  <p>This means implementers must <strong>commit to providing</strong> a value. But I would like a given implementer to <strong>also allow setting</strong> that value. In my head, this would mean providing the <code>Property</code>'s setter as part of the implementation, doing something like this : </p>
  
  <pre><code>Public Property PublicProperty As String Implements SomeInterface.PublicProperty
      Get
          Return _myProperty
      End Get
      Set(ByVal value As String)
          _myProperty = value
      End Set
  End Property
  </code></pre>
  
  <p>but this will not compile as, for the VB compiler, the implementer no longer implements the interface (because it is no longer <code>ReadOnly</code>).</p>
  
  <p>Conceptually, this should work, because, in the end, it just means Implement the getter from the Interface, and add a setter method. For "normal methods", this would be no problem.</p>
  
  <p>Is there some way of doing it, without resorting to "interface hiding" or "home-made" <code>SetProperty()</code> method, and style having the <code>Property</code> behave like a Read/Write property in the implementations ?</p>
  
  <p>Thanks !</p>
  
  <p><strong>--UPDATE--</strong>
  (I have moved this question <a href="https://stackoverflow.com/questions/6341184/why-cant-interface-readonly-properties-be-overriden-in-vb-net-when-it-is-valid">to a separate Question</a>)
  My question is really : <strong>"why can't this be done in VB.NET", when the following is valid in C#.NET?"</strong> : </p>
  
  <pre><code>interface IPublicProperty
  {
      string PublicProperty { get; }
  }
  </code></pre>
  
  <p>with implementation :</p>
  
  <pre><code>public class Implementer:IPublicProperty
      {
          private string _publicProperty;
  
          public string PublicProperty
          {
              get
              {
                  return _publicProperty;
              }
              set
              {
                  _publicProperty = value;
              }
          }
      }
  </code></pre>