这个问题适用于所有具有短路 AND 运算符的编程语言,而不仅仅是 C#。
问题很简单 - 使用短路评估来避免超出范围的索引异常,例如:
if ((x > 0) && (bar[x] == foo))
或者
if (((x > 0) && (x < bar.Length)) && (bar[x] == foo))
糟糕的编码风格?我知道我可以像这样嵌套循环:
if (x > 0)
{
if (bar[x] == foo)
{
}
}
但我发现它非常难以阅读。