title: Strange behaviour of switch case with boolean value
body: <p>My question is not about how to solve this error(I already solved it) but why is this error with boolean value.</p>
  
  <p>My function is</p>
  
  <pre><code>private string NumberToString(int number, bool flag)
  {
      string str;
  
      switch(flag)
      {
          case true: 
              str = number.ToString("00");
              break;
          case false:
              str = number.ToString("0000"); 
              break;
      }
  
      return str;
  }
  </code></pre>
  
  <p>Error is <code>Use of unassigned local variable 'str'</code>. Bool can only take true or false. So it will populate <code>str</code> in either case. Then why this error?</p>
  
  <p>Moreover this error is gone if along with true and false case I add a <code>default</code> case, but still what can a bool hold apart from true and false?</p>
  
  <p>Why this strange behaviour with bool variable?</p>