title: Purpose of parentheses around expressions joined by logical "and"
body: <p>Some coders will wrap each condition in its own parentheses, like this:</p>
  
  <p>Style #1:</p>
  
  <pre><code>bool Test(string a, string b)
  {
      return ((a != null) &amp;&amp; (b != null));
  }
  </code></pre>
  
  <p>Style #2:</p>
  
  <pre><code>bool Test(string a, string b)
  {
      return a != null &amp;&amp; b != null;
  }
  </code></pre>
  
  <p>In C# the difference is purely stylistic (at least, I think so).  The first expression evaluates first, and the second expression evaluates only if the first is true (otherwise it short-circuits because the entire expression is already confirmed false).</p>
  
  <p>Someone mentioned that #1 above is an "old C style".  What is its practical purpose?  Is there any actual difference between the two, or is it some kind of safeguard against typos (like writing <code>if (true == x)</code> instead of <code>if (x == true)</code>).</p>