如果声明带负回报

Rav*_*Ram 0 c#

出于某种原因,这看起来不正确.有没有更好的方法来编写/折射这个?

if (!(auth.DoesAuthMatch && auth.DoesEmailMatch))
{
    statusText = "Access Denied";
}
Run Code Online (Sandbox Code Playgroud)

我想我有一个'周一的案例!......'

Ode*_*ded 5

重构一个方法:

private bool IsAccessDenied(Auth auth)
{
    return !(auth.DoesAuthMatch && auth.DoesEmailMatch);
}

if (IsAccessDenied(auth))
{
    statusText = "Access Denied";
}
Run Code Online (Sandbox Code Playgroud)

至于布尔逻辑:

!(auth.DoesAuthMatch && auth.DoesEmailMatch) == 
(!auth.DoesAuthMatch || !auth.DoesEmailMatch)
Run Code Online (Sandbox Code Playgroud)

De Morgan定律的简单应用.