title: Conditional operator cannot cast implicitly?
body: <p>I'm a little stumped by this little C# quirk:</p>
  
  <p>Given variables:</p>
  
  <pre><code>Boolean aBoolValue;
  Byte aByteValue;
  </code></pre>
  
  <p>The following compiles:</p>
  
  <pre><code>if (aBoolValue) 
      aByteValue = 1; 
  else 
      aByteValue = 0;
  </code></pre>
  
  <p>But this will not:</p>
  
  <pre><code>aByteValue = aBoolValue ? 1 : 0;
  </code></pre>
  
  <p>Error says: "Cannot implicitly convert type 'int' to 'byte'."</p>
  
  <p>And of course, this monstrosity will compile:</p>
  
  <pre><code>aByteValue = aBoolValue ? (byte)1 : (byte)0;
  </code></pre>
  
  <p>What's going on here?</p>
  
  <p>EDIT:</p>
  
  <p>Using VS2008, C# 3.5</p>