【发布时间】:2016-12-01 10:55:08
【问题描述】:
作为my previous question 的后续行动,我注意到除以零时的奇怪行为(使用控制台)。我发现以下两条语句编译得很好:
Console.WriteLine(1d / 0d);
Console.WriteLine(1f / 0f);
而这两个给出了编译时错误:
Console.WriteLine(1 / 0);
Console.WriteLine(1m / 0m);
的
除以常数零
为什么会有这种行为差异?
【问题讨论】:
-
@JeroenVannevel 我的问题是关于编译时错误,但我认为原因与运行时错误相同,谢谢
-
这个问题是相关的,但不是真正的重复:强调编译时错误。另一个是“为什么 double 允许除以 0”
-
@Guillaume 虽然副本回答了问题并涵盖了 I 中的编译和运行时错误/异常,所以我相信它仍然是一个骗局
-
编译时和运行时评估的行为不同。这个问题也是关于编译器在运行时评估时无法从具有定义行为 (DivideByZeroException) 的表达式生成 IL。
标签: c#