Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DanteInfernum

#82
.NET (C#, VB.NET, ASP) / Re: Duda de diseño.
25 Julio 2013, 21:31 PM
Bien. Gracias por las respuestas.

Saludos.
#83
Citarcomo todos sabemos a EE.UU le gusta ir tras el petróleo y si Snowden va a Venezuela esto le daría a EE.UU una escusa para un posible conflicto armado con Venezuela

¡Shhhhhhhhh! ¡Toco madera! El día que los Yankees se aburran de robarle petróleo a los árabes y apunten para dentro de casa, este continente va a ser una carnicería.

¡No avives giles! Dejalos que están entretenidos por ahí afuera...


#84
Cita de: Darhius en 24 Julio 2013, 17:11 PM
Está disponible en la red?  ;D

No sé, pero capaz que te conviene sumergirte un rato en las oscuras aguas de la "Deep Web". Cuenta la leyenda que ahí se encuentran cosas de las cuales pocos humanos saben de su existencia...   :D
#85
.NET (C#, VB.NET, ASP) / Re: Duda de diseño.
24 Julio 2013, 18:36 PM
Sí, eso lo entiendo bien. Pero por razones de practicidad, quiero acceder a las listas desde afuera de la clase, pero manteniendo la misma notación que uso para acceder a los elementos de cada lista dentro de la clase misma (esto es, acceder a los elementos de cada lista a través de un índice encerrado entre paréntesis rectos [int i]). Esto lo logro a través de un indizador.
El problema es que necesitaría implementar dos en una misma clase.

Sería algo así:

class Empresa
    {
        List<CorredorSeguros> listaCorredores;
        List<Cliente> listaClientes;

        public CorredorSeguros this[int i]
        {
            get { return listaCorredores[i]; }
        }

        public Cliente this[int i]
        {
            get { return listaClientes[i]; }
        }
    }


Esto no es posible en C#, el compilador me va a tirar un error por ambos índices tener el mismo parámetro.

Y mi pregunta era cual sería una solución alternativa para conseguir un comportamiento similar.

Lo más parecido que se me ocurre hacer es:

class Empresa
    {
        List<CorredorSeguros> listaCorredores;
        List<Cliente> listaClientes;

        public CorredorSeguros getCorredorSeguros(int i)
        {
            return listaCorredores[i];
        }

        public Cliente getCliente(int i)
        {
            return listaClientes[i];
        }
    }


O sea, hacer una función para cada lista que me devuelva sus elementos.
Pero quería saber si hay alguna otra opción, o que sería lo más recomendado.

#86
Lo que hizo Snowden, por más loable que haya sido, no me parece que amerite como para que le otorguen un premio Nobel únicamente por eso.
Por otro lado, ¡Obama es un premio Nobel de la Paz! :-(
Así que puede llegar a pasar cualquier cosa....
#87
.NET (C#, VB.NET, ASP) / Re: Duda de diseño.
24 Julio 2013, 02:14 AM
Tengo otra pequeña consulta (aunque ya no tiene mucho que ver con el título del tema...):

Ahora tengo una clase con dos listas genéricas, y me gustaría acceder a los elementos de cada una de ellas a través de un indizador. El problema está en que cada clase no permite tener más de un indizador. Lo que se puede hacer es sobrecargarlo, pero el parámetro sería el mismo, un entero que indique la posición dentro de la lista, así que esto tampoco me sirve.

¿Puede ser que la única forma de conseguir un comportamiento parecido al de un indizador sea implementando funciones tales como GetCorredor(int i) y GetCliente(int i) para que me devuelvan los elementos de cada lista?
#88
.NET (C#, VB.NET, ASP) / Re: Duda de diseño.
24 Julio 2013, 01:04 AM
Ok. Muchísimas gracias a ambos por la pronta respuesta.
Conclusión: Evitando esta herencia innecesaria, en un primer momento debo implementar algunos métodos más, pero de esta forma me ahorro muchos problemas de cabeza a futuro.

Saludos.
#89
.NET (C#, VB.NET, ASP) / Duda de diseño.
23 Julio 2013, 21:41 PM
Estoy haciendo un ejercicio, el cual pide crear el sitio web de una empresa de seguros. Tengo una clase Empresa, la cual implementa métodos para gestionar las clases CorredorSeguros y Cliente. Estas dos últimas clases no tienen nada en común, salvo el atributo nombre.

Ahora, mi preguta: ¿Qué es mas conveniente? ¿Utilizar dos listas genéricas en mi clase Empresa para coleccionar por separado objetos de las clases CorredorSeguros y Cliente? ¿O en cambio, utilizar sólo una lista para coleccionar instancias de ambas clases?

Si colecciono los objetos de cada una de las clases por separado, tendría que implementar métodos específicos para cada una de las dos colecciones; en cambio, si los colecciono en una única lista, me ahorro implementar algunos métodos, pero en cambio debería hacer unos cuantos casteos. Y esta única lista sería de tipo Persona, una clase base que la crearía únicamente para derivar de ella mis clases CorredorSeguro y Cliente. Pero como dije, no tienen nada en común, sería una herencia forzosa, ya que la clase base (Persona) sería prácticamente una clase vacía.

Pongo un ejemplo para que todo sea más entendible:

Coleccionando por separado.

class Empresa
    {
        List<CorredorSeguros> listaCorredores;
        List<Cliente> listaClientes;

        public void AgregarCorredor(CorredorSeguros c)
        { }

        public CorredorSeguros BuscarCorredor(string nombre)
        { }

        public void AgregarCliente(Cliente c)
        { }

        public Cliente BuscarClientes(double ci)
        { }
    }

    class CorredorSeguros
    {
        string usuario;
    }

    class Cliente
    {
        double cedulaIdentidad;
    }


Coleccionando en una única lista genérica de tipo Persona.

class Empresa
    {
        List<Persona> lista;

        public void Agregar(Persona p)
        { }

        public Persona Buscar(string usuario)
        { }

        public Persona Buscar(double ci)
        { }
    }

    class Persona
    { }

    abstract class CorredorSeguros : Persona
    {
        string Usuario;
    }

    class Cliente : Persona
    {
         double cedulaIdentidad;
    }



O sea, lo que gano por un lado lo pierdo por el otro... En el ejemplo, me ahorro implementar dos veces el método Agregar(). Por otra parte, en cuanto al método Buscar(), debo andar verificando si cada elemento de la lista es del tipo que estoy buscando,y después tengo que castear lo que me devuelve el método.
#90
Ah, mirá... Tenemos un agujero en el medio del ojo. Las cosas que me vengo a enterar...