可能有人花时间在这里解释我的语言基础的:影响铸造为int在C#
int foo = myObject.SomeList.Count;
for (int i = 0 ; i < foo ; i++)
{
myObject.SomeList.Add(bar);
}
进入一个无限循环,因为foo
引用的是不断递增的值。修改第一行:
int foo = (int)myObject.SomeList.Count;
使得它走,不知何故改变foo
从参考一劳永逸的价值。这可能是教科书,但为什么会发生这种情况?
非常感谢
编辑:好,帕特里克提到,无限循环时没有事先存储为foo,演员是没有意义的,这是有意义的只发生。这确实是我在调试时最初想到的。因此,当演员修好它时,我感到惊讶。实际发生的事情是,当Visual Studio错误地认为我修复了编辑代码和执行代码之间的同步问题时,导致了错误的结论。
哪个版本的.Net和c#? – zendar 2009-02-26 15:02:08
请发布一个简短但完整的程序来演示此问题。一些可以直接粘贴到Visual Studio中的program.cs文件中,编译并运行的东西。 – 2009-02-26 15:57:37