Need help to understand a c# statement
<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>
