【发布时间】:2013-07-16 00:44:03
【问题描述】:
public static int PlanetToIndex(string planetToSearch, List<Planet> pl)
{
for (int i = 0; i < pl.Capacity; i++) // out of range...
if (pl[i].Equals(planetToSearch))
return i;
return -1;
}
它的C#简单搜索功能,好像Capacity = 16,但是范围超出了14...
14是正确的值,为什么MessageBox显示16?!
另外,你列出了我传递给函数的内容(Planet 是抽象类)
class Galaxy
{
public List<Planet> galaxy = new List<Planet>();
Planet Ceres = new Planet.Ceres();
Planet Pluto = new Planet.Pluto();
Planet Europa = new Planet.Europa();
Planet Venus = new Planet.Venus();
Planet Sedna = new Planet.Sedna();
Planet Jupiter = new Planet.Jupiter();
Planet Void = new Planet.Void();
Planet Eris = new Planet.Eris();
Planet Mars = new Planet.Mars();
Planet Uranus = new Planet.Uranus();
Planet Neptune = new Planet.Neptune();
Planet Saturn = new Planet.Saturn();
Planet Earth = new Planet.Earth();
Planet Mercury = new Planet.Mercury();
public Galaxy()
{
galaxy.Add(Ceres);
galaxy.Add(Pluto);
galaxy.Add(Europa);
galaxy.Add(Venus);
galaxy.Add(Sedna);
galaxy.Add(Jupiter);
galaxy.Add(Void);
galaxy.Add(Eris);
galaxy.Add(Mars);
galaxy.Add(Uranus);
galaxy.Add(Neptune);
galaxy.Add(Saturn);
galaxy.Add(Earth);
galaxy.Add(Mercury);
}
}
【问题讨论】: