title: how to use <T>.TryParse in a generic Method while T is either double or Int
body: <p>in one of my projects I'm using following two methods. 1. GetDoubleValue and 2. GetIntValue. GetDoubleValue uses double.TryParse to parameter str string and returns 0 if it fails while GetIntValue tries int.TryParse to parameter str string and returns 0 if it fails. What I want is to combine these two methods into one generic method that alongwith string str receives parameter T as well so that if I want to use GetDoubleValue Method I can use double for the parameter T and if I want to use GetIntValue Method I can use Int for the parameter T</p>
  
  <pre><code>public double GetDoubleValue(string str)
  {
      double d;
      double.TryParse(str, out d);
      return d;
  }
  public int GetIntValue(string str)
  {
      int i;
      int.TryParse(str, out i);
      return i;
  }
  </code></pre>
  
  <p>Note: I have tried something like this;</p>
  
  <pre><code>private T GetDoubleOrIntValue&lt;T&gt;(string str) where T : struct 
  {
      T t;
      t.TryParse(str, out t);
      return t;
  }
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <p>In my database I have more than 30 columns in differenct tables having numeric datatype. I want to insert 0 in each column if user does not type anything in the textbox i.e he leaves all or some of the textboxes empty. If I don't use the GetIntValue method I will have to use the method body more than 30 times. that is why I am doing this through method approach. I'm writing three of more than thirty examples for instance</p>
  
  <pre><code>cmd.Parameters.Add("@AddmissionFee", SqlDbType.Decimal).Value = GetIntValue(tbadmissionfee.Text);
  cmd.Parameters.Add("@ComputerFee", SqlDbType.Decimal).Value = GetIntValue(tbcomputerfee.Text);
  cmd.Parameters.Add("@NotesCharges", SqlDbType.Decimal).Value = GetDoubleValue(tbnotescharges.Text);
  </code></pre>
  
  <p>I want to combine the aforesaid two methods because today I'm having two methods like this which if combined will not give any better improvement in the programming but tomorrow I may have tens of methods like this that will better be combined into one generic method. e.g I may have GetInt32Value, GetShortValue etc. hope it is now cleared why I want this???</p>