title: TypeConverter vs. Convert vs. TargetType.Parse
body: <p>As far as I know, there are at least 3 ways to convert data types in .NET:</p>
  
  <hr>
  
  <p>using <a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.aspx">System.ComponentModel.TypeConverter</a></p>
  
  <pre><code>var conv = System.ComponentModel.TypeDescriptor.GetConverter(typeof(int));
  var i1 = (int)conv.ConvertFrom("123");
  </code></pre>
  
  <p>using <a href="http://msdn.microsoft.com/en-us/library/cytax8kf.aspx">System.Convert.ChangeType()</a>:</p>
  
  <pre><code>var i2 = (int) Convert.ChangeType("123", typeof (int));
  </code></pre>
  
  <p>using the <a href="http://msdn.microsoft.com/en-us/library/b3h1hf19.aspx">Parse/TryParse</a> methods of the destination type:</p>
  
  <pre><code>var i3 = int.Parse("123"); // or TryParse
  </code></pre>
  
  <p><br/></p>
  
  <hr>
  
  <p>Are there any guidelines or rules-of-thumb <strong>when to use which method</strong> to convert between the .NET base data types (especially from string to some other data type)?</p>