CLR: .Net / Mono / Boo / Otros CLR > C#

 ArgumentOutOfRangeException

<< < (2/2)

salva04@telefonica.net:
este es mi metodo:

 public cVertice EstacionAprox(cLibretaPto Pto, cLibretaObs Obs)
        {
            cObsTopo DrAux = new cObsTopo();//creo DrAux objeto para poder llamar a mi metodo Dr
            double res = 0;
            cVertice CoordAprox = new cVertice();

            if (Obs[0].LHz > Obs[1].LHz)
                res = Obs[0].LHz - Obs[1].LHz;//me resta dos lecturas
            else
                res = Obs[1].LHz - Obs[0].LHz;

            double dist = Distancia(Pto[0]);//calculo la distancia entre el punto 1 y el punto 2, llamando al metodo
            double Alfa = ((DrAux.Dr(Obs[0]) * DrAux.Dr(Obs[0])) + (dist * dist) - (DrAux.Dr(Obs[1]) * DrAux.Dr(Obs[1]))) / (2 * dist * DrAux.Dr(Obs[0]));           
            double Alfa2 = Math.Acos(Alfa) * 200 / Math.PI;//me da el angulo en cente
            double Az1;
            if (Pto[0].Este < Pto[1].Este)
                Az1 = Azimut(Pto[0]) + Alfa2;//calculo el azimut entre el punto 1 y el punto 2, llamando al metodo, me da el azimut de A al punto estacion
            else
                Az1 = Azimut(Pto[0]) - Alfa2;
            CoordAprox.Este = Pto[0].Este + DrAux.Dr(Obs[0]) * Math.Sin(Az1 * Math.PI / 200);//me calcula la x del pto aproximado
            CoordAprox.Norte = Pto[0].Norte + DrAux.Dr(Obs[0]) * Math.Cos(Az1 * Math.PI / 200);//me calcula la y del pto aproximado
            return (CoordAprox);//me devuelve las coordenadas del pto aproximado
        }

Esta es la clase libreta de observaciones:
 public class cLibretaObs
    {
       
        protected List<cObsTopo> LoObs = null
       
        public cLibretaObs()//constructor de la clase libreta.
        {
            this.LoObs = new List<cObsTopo>();//creo una lista cobsTopo
        }
                public int Cantidad
        {
            get
            {
                return LoObs.Count;
            }
         }
         public cObsTopo this[int index]
         {
            get
            {
              return (LoObs[index]);
            }
          }
aqui es donde me da el error al llegar a la ultima linea

y esta es mi clase observacion:


    public class cObsTopo
    {
        public string Estacion = "";
        public string PuntoVisado = "";
        public double LHz = 0;
        public double Dg = 0;
        public double LV = 0;
        /// <summary>
        /// Constructor de la clase Observación
        /// <summary>       
        public cObsTopo()
        {
        }
        /// Constructor de la clase Observación
        public cObsTopo(string Est, string PV, double Hz, double D, double V)
        {
            this.Estacion = Est;
            this.PuntoVisado = PV;
            this.LHz = Hz;
            this.Dg = D;
            this.LV = V;
        }

gabio2:
Coloca un punto de interrupción donde te marca el error, y antes de que se ejecute la instrucción, verifica que número de Index es el que va a consultar y valida que el Index este dentro del Rango de tú lista... y ahí puede ser tú punto de partida del origen del error..

Saludos.

salva04@telefonica.net:
gracias ya he conseguido arreglarlo

un saludo

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa