<?xml version="1.0"?>
<clause number="17.2.7.1" title="Member Names Reserved for Properties">
  <paragraph>For a property P (<hyperlink>17.6</hyperlink>) of type T, the following signatures are reserved: <code_example><![CDATA[
T get_P();  
void set_P(T value);  
]]></code_example></paragraph>
  <paragraph>Both signatures are reserved, even if the property is read-only or write-only. </paragraph>
  <paragraph>
    <example>[Example: In the example <code_example><![CDATA[
using System;  
class A {  
   public int P {  
      get { return 123; }  
   }  
}  
class B: A {  
   new public int get_P() {  
      return 456;  
   }  
   new public void set_P(int value) {  
   }  
}  
class Test  
{  
   static void Main() {  
      B b = new B();  
      A a = b;  
      Console.WriteLine(a.P);  
      Console.WriteLine(b.P);  
      Console.WriteLine(b.get_P());  
   }  
}  
]]></code_example>a class A defines a read-only property P, thus reserving signatures for get_P and set_P methods. A class B derives from A and hides both of these reserved signatures. The example produces the output: <code_example><![CDATA[
123  
123  
456  
]]></code_example>end example]</example>
  </paragraph>
</clause>
