/// <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 ClaseDeRuta)) { return(false); } // Compara latitud y longitud. ClaseDeRuta comparador = (ClaseDeRuta)elObjecto; bool esIgual = (this == comparador); return(esIgual); }
/// <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"); } } }