• Domingo 22 de Diciembre de 2024, 15:34

Autor Tema:  ArgumentOutOfRangeException  (Leído 3580 veces)

salva04@telefonica.net

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
ArgumentOutOfRangeException
« en: Jueves 14 de Junio de 2012, 13:27 »
0
Hola, soy un pardillo en esto del c#, estoy haciendo un programilla y me ha salido este error 'no se controlo ArgumentOutOfRangeException'
Alguien me puede ayudar??

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #1 en: Jueves 14 de Junio de 2012, 15:14 »
0
Está fuera del rango, estás trabajando con vectores?...

Puedes colocar la sección del código donde marca el error?..


Mi sugerencia, que ejecutes paso a paso tú aplicación para que te des cuenta de las instrucciones que se ejecutan..


Saludos!
@gabio87

salva04@telefonica.net

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #2 en: Jueves 14 de Junio de 2012, 16:06 »
0
Hola, me sale cuando empieza a leer este fragmento de codigo que tengo puesto dentro de un metodo:

 double res = 0;

 if (Obs[0].LHz > Obs[1].LHz)
                res = Obs[0].LHz - Obs[1].LHz;
            else
                res = Obs[1].LHz - Obs[0].LHz;

igual esta mal hecho, pero estoy empezando a utilizar c# y a programar.

salva04@telefonica.net

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #3 en: Jueves 14 de Junio de 2012, 16:09 »
0
el if es para que me compare 2 valores que tengo cargados dentro de un datagridview, y no se si se hace asi.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #4 en: Jueves 14 de Junio de 2012, 17:33 »
0
Podrias poner la definicion de la variable Obs??

Porque asi, sin ver como defines Obs no es posible ayudarte ya que no sabemos de que tipo son los elementos de Obs, ni cuantos elementos tiene el vector Obs.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

salva04@telefonica.net

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #5 en: Jueves 14 de Junio de 2012, 19:51 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #6 en: Jueves 14 de Junio de 2012, 20:22 »
0
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.
@gabio87

salva04@telefonica.net

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re:ArgumentOutOfRangeException
« Respuesta #7 en: Lunes 18 de Junio de 2012, 16:03 »
0
gracias ya he conseguido arreglarlo

un saludo