我对此有点困惑。如果系统的当前用户名是 !=
Administrator 或 Administrator2,我想隐藏一个按钮,但实现我想要的目标的唯一方法是使用 &&
而不是||
。
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
if
(userName != @"PC\Administrator" && userName != @"PC\Administrator2")
{
button2.Hide();
}
但是,在我的表单中打开 button2
的另一个地方,如果我使用 ==
它似乎可以工作?
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var adminform = new AdminForm();
if (userName == @"PC\Administrator" || userName == @"PC\Administrator2")
{
adminform.Show();
}
知道为什么在第一个示例中使用 !=
时我不能使用 ||
吗?
最佳答案
De Morgan's Laws for Boolean operations是程序员需要深入理解的一项重要技能。
在您的情况下,当否定时您需要额外的括号来正确排序操作,或者在您的情况下将 ||
更改为 &&
。要使用 ||
你会放
if (!(userName == @"PC\Administrator" || userName == @"PC\Administrator2"))
关于c# - 为什么 or 运算符在使用 "not equals"时不能在 if 语句中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833858/