예제 #1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="elLímiteDeVelocidad">El Límite de Velocidad</param>
        /// <param name="laClaseDeRuta">La Clase de Ruta</param>
        /// <param name="losOtrosParámetros">Los otros parámetros de ruta.</param>
        public CampoParámetrosDeRuta(
            LímiteDeVelocidad elLímiteDeVelocidad,
            ClaseDeRuta laClaseDeRuta,
            bool[] losOtrosParámetros)
            : base(IdentificadorDeParámetrosDeRuta)
        {
            if (losOtrosParámetros.Length != NúmeroDeOtrosParámetros)
            {
                throw new ArgumentException(
                          string.Format("El números de Otrós Parámetros debe ser {0} pero es {1}", NúmeroDeOtrosParámetros, losOtrosParámetros.Length),
                          "losOtrosParámetros");
            }

            misOtrosParámetros  = losOtrosParámetros;
            miLímiteDeVelocidad = elLímiteDeVelocidad;
            miClaseDeRuta       = laClaseDeRuta;
        }
        /// <summary>
        /// Devuelve una variable lógica que indica si un objeto
        /// dado es igual.
        /// </summary>
        /// <param name="elObjecto">El objecto dado.</param>
        public override bool Equals(object elObjecto)
        {
            // Si el objeto es nulo entonces no puede ser igual.
            if (elObjecto == null)
            {
                return(false);
            }

            // Si el objecto no es del mismo tipo entonces no puede ser igual.
            if (!(elObjecto is LímiteDeVelocidad))
            {
                return(false);
            }

            // Compara latitud y longitud.
            LímiteDeVelocidad comparador = (LímiteDeVelocidad)elObjecto;
            bool esIgual = (this == comparador);

            return(esIgual);
        }
예제 #3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="elTextoDeParámetrosDeRuta">El texto de los parámetros de ruta.</param>
        public CampoParámetrosDeRuta(
            string elTextoDeParámetrosDeRuta)
            : base(IdentificadorDeParámetrosDeRuta)
        {
            string[] partes = elTextoDeParámetrosDeRuta.Split(',');

            // Verifica el número de partes.
            const int númeroDePartes = 12;

            if (partes.Length < númeroDePartes)
            {
                throw new ArgumentException(string.Format("Los parámetros de rutas deben tener " +
                                                          "{0} elementos separados por coma, pero es: {1}", númeroDePartes, elTextoDeParámetrosDeRuta));
            }

            // Lée los parametros.
            miLímiteDeVelocidad = new LímiteDeVelocidad(Convert.ToInt32(partes[0]));
            miClaseDeRuta       = new ClaseDeRuta(Convert.ToInt32(partes[1]));
            misOtrosParámetros  = new bool[NúmeroDeOtrosParámetros];
            const int otrosParámetrosIndiceOffset = 2;

            for (int i = 0; i < NúmeroDeOtrosParámetros; ++i)
            {
                int valor = Convert.ToInt32(partes[i + otrosParámetrosIndiceOffset]);
                switch (valor)
                {
                case 0:
                    misOtrosParámetros[i] = false;
                    break;

                case 1:
                    misOtrosParámetros[i] = true;
                    break;

                default:
                    throw new ArgumentException(
                              string.Format("El números de los parámetros de ruta para el tercer elemento en adelante tiene que ser 0 ó 1: {0}", elTextoDeParámetrosDeRuta),
                              "elTextoDeParámetrosDeRuta");
                }
            }
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="elLímiteDeVelocidad">El Límite de Velocidad</param>
        /// <param name="laClaseDeRuta">La Clase de Ruta</param>
        /// <param name="losOtrosParámetros">Los otros parámetros de ruta.</param>
        public CampoParámetrosDeRuta(
            LímiteDeVelocidad elLímiteDeVelocidad,
            ClaseDeRuta laClaseDeRuta,
            bool[] losOtrosParámetros)
            : base(IdentificadorDeParámetrosDeRuta)
        {
            if (losOtrosParámetros.Length != NúmeroDeOtrosParámetros)
              {
            throw new ArgumentException(
              string.Format("El números de Otrós Parámetros debe ser {0} pero es {1}", NúmeroDeOtrosParámetros, losOtrosParámetros.Length),
              "losOtrosParámetros");
              }

              misOtrosParámetros = losOtrosParámetros;
              miLímiteDeVelocidad = elLímiteDeVelocidad;
              miClaseDeRuta = laClaseDeRuta;
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="elTextoDeParámetrosDeRuta">El texto de los parámetros de ruta.</param>
        public CampoParámetrosDeRuta(
            string elTextoDeParámetrosDeRuta)
            : base(IdentificadorDeParámetrosDeRuta)
        {
            string[] partes = elTextoDeParámetrosDeRuta.Split(',');

              // Verifica el número de partes.
              const int númeroDePartes = 12;
              if (partes.Length < númeroDePartes)
              {
            throw new ArgumentException(string.Format("Los parámetros de rutas deben tener " +
              "{0} elementos separados por coma, pero es: {1}", númeroDePartes, elTextoDeParámetrosDeRuta));
              }

              // Lée los parametros.
              miLímiteDeVelocidad = new LímiteDeVelocidad(Convert.ToInt32(partes[0]));
              miClaseDeRuta = new ClaseDeRuta(Convert.ToInt32(partes[1]));
              misOtrosParámetros = new bool[NúmeroDeOtrosParámetros];
              const int otrosParámetrosIndiceOffset = 2;
              for (int i = 0; i < NúmeroDeOtrosParámetros; ++i)
              {
            int valor = Convert.ToInt32(partes[i + otrosParámetrosIndiceOffset]);
            switch (valor)
            {
              case 0:
            misOtrosParámetros[i] = false;
            break;
              case 1:
            misOtrosParámetros[i] = true;
            break;
              default:
            throw new ArgumentException(
              string.Format("El números de los parámetros de ruta para el tercer elemento en adelante tiene que ser 0 ó 1: {0}", elTextoDeParámetrosDeRuta),
              "elTextoDeParámetrosDeRuta");
            }
              }
        }