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

基本上,如果IsApple为假或IsBannana为假,则断言应该失败,但是如果两者之一是正确的断言应该通过,那么有人可以解释为什么该断言失败吗?

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

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

            Assert.Pass();
        }

最佳答案

你在说什么没有道理。

这是我(和编译器)理解您所说内容的方式:


  基本上,如果IsApple为假或IsBannana为假,则断言应该失败



如果IsApple为假,则断言将失败
如果IsBanana为假,则断言应该失败


换句话说,如果其中之一为假,则不必理会另一个也为假。


  但是,如果两者之一是正确的,则断言应该通过



如果其中之一是正确的,那么您不必在乎另一个是否也是正确的。


这些要求彼此矛盾。

也许您的意思是“如果IsApple是假的而IsBanana是假的”;也就是说,如果它们都是假的。

但是您写的是“如果IsApple为假或IsBanana为假”,也就是说,如果其中之一为假。

关于c# - C#理解 bool 表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6453198/

10-09 03:15