title: Why do all TryParse overloads have an out parameter?
body: <p>I have discovered that many times I don't need the out parameter of the TryParse method, but the problem that it is necessarily. Here I will show one example when it's not needed.</p>
  
  <p>I want to check if a string is an integer, if it is an integer then print "An integer"; otherwise, print "Not an integer". So here is the code:</p>
  
  <pre><code>string value = Console.ReadLine(); //Get a value from the user.
  int num; //Why should I have it?? No need at all !
  
  if (int.TryParse(value, out num))
  {
      Console.WriteLine("An integer");
  }
  else
  {
      Console.WriteLine("Not an integer");
  }
  </code></pre>
  
  <p>I am just wondering why TryParse always returns an out parameter? Why it doesn't have the overload without an out parameter?</p>