在审核代码时,我在评估中使用if
后跟!
来找到一些!=
个帖子,例如。
if (!(fs.ReadByte() != (byte)'D' ||
fs.ReadByte() != (byte)'I' ||
fs.ReadByte() != (byte)'C' ||
fs.ReadByte() != (byte)'M'))
{
Console.WriteLine("Not a DCM");
return;
}
是否有任何理由使用双重否定而不是评估积极因素,例如
if ((fs.ReadByte() == (byte)'D' ||
fs.ReadByte() == (byte)'I' ||
fs.ReadByte() == (byte)'C' ||
fs.ReadByte() == (byte)'M'))
{
Console.WriteLine("Not a DCM");
return;
}
由于
答案 0 :(得分:4)
这两个 不同。第一个说“这些都不相等”,第二个说“其中任何一个都是平等的”。
如果您在其中应用!
运算符,则必须将||
更改为&&
:
if ((fs.ReadByte() == (byte)'D' &&
fs.ReadByte() == (byte)'I' &&
fs.ReadByte() == (byte)'C' &&
fs.ReadByte() == (byte)'M'))
{
Console.WriteLine("Not a DCM");
return;
}