title: Need help to understand a c# statement
body: <p>Hi need a little help understanding the following statement and the logic of what its doing.</p>
  
  <pre><code>AuthenticationProvider auth = 
      (level &amp; Levels.Authentication) == Levels.Authentication
          ? GetAuthenticationProviderByName(authentication, authPhrase)
          : DefaultAuthenticationProvider.Instance;
  </code></pre>
  
  <p>I see im making an AuthentcationProvider, but then I dont understand  whats happening why is there a comparison there and whats is the question mark doing?</p>
  
  <p>Thanks.</p>