【发布时间】:2014-12-12 09:17:24
【问题描述】:
我发现使用“var”导致意外结果的情况。
在下面的代码中,我希望 X 被声明为数据类型“long”。
为什么 X 被声明为数据类型 "int" ? (在这种情况下会导致无限循环)
long maxNumber = (long)int.MaxValue + 1;
long count = 0;
for (var X = 0; X < maxNumber; X++)
{
count++;
}
【问题讨论】:
-
您有问题吗?
-
如果您想回答自己的问题,这是规则允许的,但我会编辑,将其改写为问题,然后发布您的答案,并将其标记为已接受。跨度>
-
var的类型由声明推断。文字0是一个整数。因此,您的var是一个整数。编译器无法推断您稍后将如何使用var。如果你想要一个长的,你必须使用正确的文字0L。 -
@eddie_cat 很好的指导方针,但我们不必担心 Jeapordy 式的语义。一方面,我认为隐含的查询非常清楚。 (即,“有人可以解释一下吗?”)
标签: c# for-loop long-integer var