我敢肯定,这是一个非常简单的问题,但是我无法弄清楚为什么这个断言失败了...
基本上,如果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/