c#理解bool表达式

Har*_*oon 2 c# boolean-logic

我确信这是一个非常简单的问题,但我无法弄清楚为什么这个断言失败了......

基本上如果IsApple为假或IsBannana是假的断言应该失败,但是如果其中一个是真的断言应该通过,那么有人可以解释为什么这个断言失败了吗?

        [Test]
        public void IsApplesOrBannans()
        {
            bool IsApple = true;
            bool IsBannana = false;

            if (!IsApple || !IsBannana)
                Assert.Fail();

            Assert.Pass();
        }
Run Code Online (Sandbox Code Playgroud)

jal*_*alf 5

你说的话毫无意义.

以下是我(和编译器)理解你所说的内容:

基本上如果IsApple是假的或IsBannana是假的断言应该失败

  • 如果IsApple为false,则断言应该失败
  • 如果IsBanana为false,则断言应该失败

换句话说,如果其中一个是假的,你不关心另一个是否也是假的.

但是,如果其中一个是真的断言应该通过

  • 如果其中一个是真的,你不关心另一个是否也是真的.

这些要求相互矛盾.

也许你的意思是"如果IsApple是假的, IsBanana是假的"; 也就是说,如果他们假的.

但你写的是"如果IsApple是假的 IsBanana是假的",也就是说,如果其中一个是假的.