可能有人花時間在這裏解釋我的語言基礎的:影響鑄造爲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