title: Why ! operator works while == false doesn't in this case?
body: <p>I though <code>condition == false</code> is equivalent to <code>!( condition )</code>  but I found that they behave differently with is keyword.</p>
  
  <p>When I use <code>!( condition )</code> the code compiles successfully:</p>
  
  <pre><code>object instance = "Hello world!";
  if( !( instance is string value ) )
  {
      throw new InvalidOperationException();
  }
  Console.WriteLine( value );
  </code></pre>
  
  <p>However compiler throws following error if I use <code>condition == false</code></p>
  
  <blockquote>
    <p>CS0165    Use of unassigned local variable 'value'</p>
  </blockquote>
  
  <p><a href="https://i.stack.imgur.com/Y95xc.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Y95xc.jpg" alt="enter image description here"></a></p>
  
  <pre><code>object instance = "Hello world!";
  if( instance is string value == false )
  {
      throw new InvalidOperationException();
  }
  Console.WriteLine( value );
  </code></pre>
  
  <p>What is the differece between <code>condition == false</code> and <code>!( condition )</code> in this case?</p>