Argument out of range exception

Kann mir jemand sagen, warum ich immer diese exception? Gut, ich weiß, "warum" ich bin immer es ist, Ursache, die es sagt, dass das element in der Liste, die ich versuche zuzugreifen, existiert nicht, aber ein Schritt durch den code, den ich kann sehen, dass es tatsächlich existiert?

In Game1 nenne ich eine helper-Klasse' Methode der Berechnung. Dann, wenn die Berechnung abgeschlossen ist, füge ich das Ergebnis in eine Liste<> in der CalculationHelper Klasse.
Der code HIERFÜR sieht wie folgt aus:

In der Game1-Klasse, wo ich instanziiert CalculationHelper calcHelper Klasse und dann rufen Sie eine der Klassenmethoden.
Fisrt, in Game1-ich nenne calcHelper.ForceVanishingPointIntersections (...) - Methode in eine for () - Schleife, die man unten sehen kann. Das funktioniert gut und die calcHelper.ForceVanishingPointIntersections (...) - Methode fügt den Wert der IntersectionPointList<> in der CalculationHelper Klasse (siehe Methode unten).

for (int i = 0; i < LineList.Count; i++)
{
    calcHelper.ForceVanishingPointIntersections(LineList[i], LineList[i + 1]);

    AddSprite(VanishingPointIntersectionList, calcHelper.GetIntersectionPointListElementAt(i), greenCirlce);
    i++;
}

Dazu einige Berechnungen an und fügen Sie einen Wert auf der IntersectionPointlist in CalculationHelper Klasse ich:

List<Vector2> IntersectionPointList = new List<Vector2>();
public void ForceVanishingPointIntersections(Line line1, Line line2)
{
    Vector2 intersectionPoint;
    //Do some calculations

    IntersectionPointList.Add(intersectionPoint);
}

Schließlich in der Game1-Klasse, die zweite Methode in der for () - Schleife rufe ich AddSprite um ein Sprite zu erstellen. Ich möchte pass in die gespeicherten Werte in CalculationHelper Klasse IntersectionPointList als Koordinaten für das Sprite.
Zu diesem Zweck rufe ich calcHelper.GetIntersectionPointListElementAt(i) ruft eine Methode in CalculationHelper Klasse so (das sollte den Rückgabewert auf den angegebenen Punkt (i) aus dem IntersectionPointList<>)
public Vector2 GetIntersectionPointListElementAt(int index)
{
Vector2 Ergebnis = this.IntersectionPointList[index];
return Ergebnis;
}
Das erste mal die for () - Schleife, das funktioniert gut. Ich mache die Berechnungen, der Wert wird gespeichert in der Liste, und ich bin in der Lage, Holen Sie sich diesen Wert aus der Liste und übergeben es an AddSprite(..). Doch auch die zweite Runde der for () - Schleife, wenn ich Anrufe, GetIntersectionPointListElementAt aus der AddSprite () - Methode, bekomme ich eine Ausnahme in meinen

public Vector2 GetIntersectionPointListElementAt(int index)
{
    Vector2 result = this.IntersectionPointList[index];    //Exception thrown here
    return result;
}

sagen: der index war außerhalb des Bereichs? Aber den code schrittweise Durchlaufen, meine IntersectionPointList ist aktualisiert und es zeigt, dass die Liste enthält nun 2 Werte. Und ich versuche, auf den zweiten Wert.

Hat jemand eine Idee warum das sein könnte?
Für das Leben von mir ich kann nicht herausfinden, wohin ich gehe falsch.

Wenn mehr code benötigt wird, kann ich noch mehr posten, nur lassen Sie mich wissen,

InformationsquelleAutor heyred | 2012-04-22
Schreibe einen Kommentar