与此相反如果?

时间:2012-04-28 19:28:25

标签: .net reverse if-statement

我有这个“如果”的陈述,但我今天真的搞砸了,想不出如何扭转它更好......

if (plist.Exists("No Update Ramdisk") && plist.Get<PlistBool>("No Update Ramdisk").Value)
{
}
else
{
    ...
}

所以你不要问plist是什么,我在.NET中写了一个plist解析器,我正在扫描它的值

2 个答案:

答案 0 :(得分:5)

你至少有三种可能性

  • 交换THEN和ELSE Block
  • 反转条件if (! A)
  • 使用De Morgan (A && B) == !(!A || !B)

http://en.wikipedia.org/wiki/De_Morgan%27s_laws

答案 1 :(得分:4)

要反转*,true表达式应为false;和and运算符应为or):

if (!plist.Exists("No Update Ramdisk") 
    || !plist.Get<PlistBool>("No Update Ramdisk").Value)
{
    ...
}

*假设Get<PlistBool>("No Update Ramdisk").Valuebool