title: Which is the more efficient syntax for NAND (not both true) in C#?
body: <p>The <a href="http://en.wikipedia.org/wiki/NAND_logic#NAND" rel="noreferrer">NAND</a> logic gate for two conditions (A and B) is <code>true</code> as long as either condition is true, or none of the conditions is true; and it is <code>false</code> if <strong>both</strong> conditions are true.</p>
  
  <pre><code>F NAND F = T
  F NAND T = T
  T NAND F = T
  T NAND T = F
  </code></pre>
  
  <p>In C# I can write this in at least two ways:</p>
  
  <pre><code>!(A &amp;&amp; B)
  </code></pre>
  
  <p>or</p>
  
  <pre><code>(!A || !B)
  </code></pre>
  
  <p>Which is <strong>more efficient</strong>?</p>
  
  <p>It seems to me that <code>if(A)</code> then B is always tested and <code>if(!A)</code> then B is never tested.</p>
  
  <p>But then the first condition must invert the result....</p>