title: Creating a generic method in C#
body: <p>I am trying to combine a bunch of similar methods into a generic method.  I have several methods that return the value of a querystring, or null if that querystring does not exist or is not in the correct format.  This would be easy enough if all the types were natively nullable, but I have to use the nullable generic type for integers and dates.</p>
  
  <p>Here's what I have now.  However, it will pass back a 0 if a numeric value is invalid, and that unfortunately is a valid value in my scenarios.  Can somebody help me out?  Thanks!</p>
  
  <pre><code>public static T GetQueryString&lt;T&gt;(string key) where T : IConvertible
  {
      T result = default(T);
  
      if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false)
      {
          string value = HttpContext.Current.Request.QueryString[key];
  
          try
          {
              result = (T)Convert.ChangeType(value, typeof(T));  
          }
          catch
          {
              //Could not convert.  Pass back default value...
              result = default(T);
          }
      }
  
      return result;
  }
  </code></pre>