title: What is the type of the 'value' reserved word in C# properties
body: <p>I am wondering what type the 'value' keyword in a property takes.</p>
  
  <p>so:</p>
  
  <pre><code>public class Test
  {
      string _numberAsString;
      int _number = -1;
  
      public Test() {}
  
      public string NumberAsString
      {
          get { return _numberAsString; }
          set { _numberAsString= value; }
      }
  
      public int Number
      {
          get { return int.Parse(_numberAsString); }
          set { _number = value; }
      }
  }
  
  //elsewhere
  Test t = new Test();
  t.Number = 5;
  </code></pre>
  
  <p>Now, this doesn't compile, as I'd expect.  The type of 'value' is determined by the return type of the property, is that correct?  I couldn't find anything to that effect, perhaps it's too obvious (I haven't read the language specs, presumably there's something in there).</p>
  
  <p>I ask, because I would like to set the property with a type that is then converted into the type of the getter.  I suppose this doesn't really make sense.</p>
  
  <p>It seems I will have to achieve this by creating a couple of methods.</p>