我一直讓我的所有數組都填充了我遊戲中的同一個對象,該對象使用此數組來跟蹤衍生對象的列表。它有代碼,基本上是:Visual Studio斷點問題
for(int i = 0; i < wildPets.Length; i++)
{
Pet pet = new Pet();
wildPets[i] = pet;
}
現在,當我剛剛運行的代碼,所有的寵物都是一樣的,因爲它只是做了一個新的寵物,並將其分配給陣列的各項指標(名稱相同, ID,HP等)。我使用斷點功能來檢查爲什麼會發生這種情況,並注意到當我遍歷代碼時,對象總是不同的,但沒有斷點發生錯誤。我認爲斷點是一個非常有用的功能,但是現在我不知道它是否真正代表我的代碼。有什麼我在這裏失蹤。我有一個可以發佈
構造示例代碼:
public Pet()
{
Random r = new Random();
type = ToType(r.Next(10));
double temp = (GetHP(type, r));
if (temp > 0)
{
hp5 = temp;
}
temp = (GetSpeed(type, r));
if (temp > 0)
{
speed5 = temp;
}
level = r.Next(5, 16);
rarity = r.Next(100);
rarityLevel = GetRarity();
DisplayImage = frmMain.petImages[petID];
abilities = FillAbilities(type, abilities);
}
它與隨機水平,稀有性,ID,和其他的東西一個新的寵物。我使用的是手錶部分是視覺工作室。兩張圖片顯示了在後臺運行的方法和數組的內容,以及當我設置斷點並逐行執行時。一個陣列中充滿了具有相同ID的寵物(相同的一切,ID只是一種快速注意的方式),另一個陣列中充滿了新的不同的寵物對象,例如代碼應該如何運行。
相同的對象,但不同的實例,這是什麼代碼這樣做 – Fredou
如何檢查對象是否相同? – Peter
我不知道你在問什麼。你可以詳細說明你的問題還是你的代碼?另外'沒有斷點發生錯誤'<=什麼錯誤,你沒有提供例外或錯誤消息。爲什麼他們是相同的,你有一個循環,併爲數組中的每個項目創建一個新的寵物。 – Igor