title: Why isn't PropertyInfo.SetValue a generic method?
body: <p>I see the signature is:</p>
  
  <pre><code>public virtual void SetValue(object obj, object value, object[] index)
  </code></pre>
  
  <p>Wouldn't this method cause the parameters to be boxed and unboxed?</p>
  
  <p>Why wasn't this method designed to be generic? Then it could even be inferred by the compiler with no boxing/unboxing penalty at runtime.</p>