这种方法会返回什么,无论是真是假?

mrb*_*lah 0 c#

bool isValid = false;
string username = "someadmin";

If( !String.IsNullOrEmpty(username) && !( username.IndexOf("admin") != -1)
    isValid = true;
Run Code Online (Sandbox Code Playgroud)

带有双重否定的第二部分让我感动!

i_a*_*orf 10

我可以告诉你DeMorgan的法律:

NOT (P OR Q) = (NOT P) AND (NOT Q)
NOT (P AND Q) = (NOT P) OR (NOT Q)
Run Code Online (Sandbox Code Playgroud)

所以,你可以把它重写为:

if (!(String.IsNullOrEmpty(username) || username.IndexOf("admin") != -1)) {
    isValid = true;
}
Run Code Online (Sandbox Code Playgroud)

...因此删除双重否定.

此外,你可以说:

if (String.IsNullOrEmpty(username) || username.IndexOf("admin") != -1) {
    isValid = false;
}
Run Code Online (Sandbox Code Playgroud)

...删除所有负面消息.

另外,你可以说:

isValid = !(String.IsNullOrEmpty(username) || username.IndexOf("admin") != -1));
Run Code Online (Sandbox Code Playgroud)

...让它变得美观和紧凑.