title: How to get the default value for a ValueType Type with reflection
body: <p>If I have a generic type parameter that is a value type and I want to know if a value is equal to the default I test it like this:</p>
  
  <pre><code>static bool IsDefault&lt;T&gt;(T value){
      where T: struct
      return value.Equals(default(T));
  }
  </code></pre>
  
  <p>If I don't have a generic type parameter, then it seems like I would have to use reflection.  If the method has to work for all value types, then <strong>Is there a better way to perform this test than what I am doing here? :</strong></p>
  
  <pre><code>static bool IsDefault(object value){
     if(!(value is ValueType)){
        throw new ArgumentException("Precondition failed: Must be a ValueType", "value");
     }
     var @default = Activator.CreateInstance(value.GetType());
     return value.Equals(@default);  
  }
  </code></pre>
  
  <p>On a side note, Is there anything I am not considering here with respect to evaluating Nullable structs?</p>