【发布时间】:2018-06-16 00:09:48
【问题描述】:
我一直在使用以下代码块来询问用户输入并在控制台应用程序中检查其有效性。
do
{
Console.Write("Enter X value:"); // prompt
} while (!(int.TryParse(Console.ReadLine(),out temp) && (temp<=10) && (temp>=0))); // repeat if input couldn't be parsed as an integer or out of range
“&&”(和)表达式评估是惰性的,这是否已记录在案?即:如果第一个操作数为假,那么它不会解析第二个操作数?我可以在生产构建中依赖它吗?我可以期望它在其他编译器中的行为相同吗?
这是我在 PPCG.SE 中学到的东西
此外,该块是否可以更易于阅读或简化为单行?
【问题讨论】:
-
如果你愿意read the documentation,你会发现令人惊奇的事情:"条件与运算符 (&&) 对其布尔操作数执行逻辑与,但只计算如果需要,它的第二个操作数”
标签: c# lazy-evaluation boolean-expression