Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            //STRING
            Mensaje <string> tipoTexto = new Mensaje <string>();

            tipoTexto.MiAtributo = "Hola";

            Console.WriteLine(tipoTexto.MiAtributo);
            Console.WriteLine(tipoTexto.ToString());

            //MICLASE
            Mensaje <MiClase> tipoMio = new Mensaje <MiClase>();

            tipoMio.MiAtributo = new MiClase();

            Console.WriteLine(tipoMio.MiAtributo);
            Console.WriteLine(tipoMio.ToString());

            Console.ReadLine();

            //STRING - INT
            Mensajero <string, int> tipoTextoEntero = new Mensajero <string, int>();

            tipoTextoEntero.miAtr1 = "cadena";
            tipoTextoEntero.miAtr2 = 3;

            //CHAR - MICLASE
            Mensajero <char, MiClase> tipoLetraMio = new Mensajero <char, MiClase>();

            tipoLetraMio.miAtr1 = 'L';
            tipoLetraMio.miAtr2 = new MiClase();

            Console.WriteLine(tipoTextoEntero.ToString());
            Console.WriteLine(tipoLetraMio.ToString());

            Console.ReadLine();

            //RESTRICTIVA
            Restrictiva <MiClase> res = new Restrictiva <MiClase>();

            res.miLista.Add(new MiClase());

            Console.WriteLine(res.ToString());

            //ERROR, NO ES DE TIPO MICLASE
            //Restrictiva<string> res2 = new Restrictiva<string>();

            //DERIVADA
            Restrictiva <MiClase> res2 = new Restrictiva <MiClase>();

            res2.miLista.Add(new MiClaseDerivada());

            Console.WriteLine(res2.ToString());

            //TIPOS CON RESTRICCIONES
            RestrictivaVarios <MiClase, MiClaseDerivada> res3 = new RestrictivaVarios <MiClase, MiClaseDerivada>();

            //TIPO CON MULTIPLES RESTRICCIONES
            RestrictivaMultiple <MiClaseDerivada> res4 = new RestrictivaMultiple <MiClaseDerivada>();

            //ERROR, NO CUMPLE CON RESTRICCIONES
            //RestrictivaMultiple<MiClaseSinDefecto> res5 = new RestrictivaMultiple<MiClaseSinDefecto>();

            //RESTRICTIVA CON UNMANAGED
            RestrictivaUnmanaged <int> res5 = new RestrictivaUnmanaged <int>();

            RestrictivaUnmanaged <ConsoleColor> res6 = new RestrictivaUnmanaged <ConsoleColor>();

            Console.WriteLine(res5.ToString());
            Console.WriteLine(res6.ToString());

            //ERROR, NO ES UN TIPO UNMANAGED
            //RestrictivaUnmanaged<string> res7 = new RestrictivaUnmanaged<string>();

            Console.ReadLine();

            //METODOS GENERICS
            OtraClase oc = new OtraClase();

            //ESTATICO Y RESTRICTIVO (CLASEDERIVADA)
            MiClaseDerivada mcd       = new MiClaseDerivada();
            string          parametro = "hola, que tal?";

            Console.WriteLine(OtraClase.MetodoEstatico <MiClaseDerivada>(mcd, parametro));

            Console.WriteLine(OtraClase.MetodoEstatico(mcd, parametro));

            //ERROR, NO CUMPLE CON RESTRICCION
            //Console.WriteLine(OtraClase.MetodoEstatico(3, "hola"));

            //DE INSTANCIA, SIN RESTRICCIONES
            oc.MetodoInstancia <int>(3);

            oc.MetodoInstancia <string>("cadena");

            oc.MetodoInstancia <MiClase>(mcd);

            oc.MetodoInstancia(88.9f);

            //DE INSTANCIA, CON RETORNO Y RESTRICCIONES
            MiClaseDerivada retorno;

            retorno = oc.OtroMetodo <MiClaseDerivada, MiClase>(mcd, new MiClase());

            //ERROR, NO CUMPLE CON RESTRICCION
            //oc.OtroMetodo<MiClaseSinDefecto, MiClase>(new MiClaseSinDefecto(0), new MiClase());

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            MiClase obj = new MiClase("Valor string");

            obj.PropiedadSE = 98;
            Console.WriteLine(obj.PropiedadSL);
            Console.WriteLine(obj.PropiedadLE);

            double a = obj.MetodoConParametros(2, 8);


            obj.MetodoSinRetornoNiParametros();

            MiClaseDerivada mcd = new MiClaseDerivada("valor1", "valor2");

            mcd.OtroMetodo();
            mcd.MetodoSinRetornoNiParametros();


            IMiInterface     miVariable;
            MiClase          miOtraVariable;
            IMiOtraInterface otraOtraVariable;

            miOtraVariable   = obj;
            miOtraVariable   = mcd;
            miVariable       = obj;
            miVariable       = mcd;
            otraOtraVariable = mcd;
            /// otraOtraVariable = obj;


            ClaseIMiembrosRepetidos cmr = new ClaseIMiembrosRepetidos();



            cmr.Metodo();
            ((IMiembrosRepetidos2)cmr).Metodo();



            IMiInterface variableInterface;

            variableInterface = obj;

            Program.Mostrar(obj);
            Program.Mostrar(variableInterface);

            //Program.Mostrar("asdfasd"); //ERROR, no es de tipo IMiInterface


            ClaseConstructorDefecto objClaseConstructorDefecto = new ClaseConstructorDefecto();
            MiOtraClase             miOtraClase = new MiOtraClase();

            miOtraClase.Metodo(objClaseConstructorDefecto);
            objClaseConstructorDefecto = miOtraClase.MetodoRetorno(objClaseConstructorDefecto);

            ClaseGenerica <MiOtraClase> objGenerica = new ClaseGenerica <MiOtraClase>();

            objGenerica.Metodo(new MiOtraClase());



            Console.ReadLine();
        }