使用"not equals"时,为什么if或operator不在if语句中工作?

Eye*_*arp 1 c# equals operator-keyword

我有点困惑.如果系统的当前用户名是!=Administrator或Administrator2,我想隐藏一个按钮,但实现我想要的目标的唯一方法是使用&&而不是||.

 string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

        if
            (userName != @"PC\Administrator" && userName != @"PC\Administrator2")
        {              
            button2.Hide();
        }
Run Code Online (Sandbox Code Playgroud)

但是,在我的形式打开的另一个地方button2,如果我使用==它然后似乎工作?

  string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
  var adminform = new AdminForm();

      if  (userName == @"PC\Administrator" || userName == @"PC\Administrator2")
        {
            adminform.Show();
        }
Run Code Online (Sandbox Code Playgroud)

知道为什么我在第一个例子中使用||时无法使用!=

Ste*_*ham 6

德摩根的布尔运算定律是程序员亲密理解的一项重要技能.

在您的情况下,当否定您需要额外的括号来正确地命令操作时,或者在您的情况下将其更改||为a &&.使用||你放的

if (!(userName == @"PC\Administrator" || userName == @"PC\Administrator2"))
Run Code Online (Sandbox Code Playgroud)