Vse o Programiranju 3

Generiki

Re: Generiki

od Matija Lokar -
Število odgovorov: 0
Ne, ne, nobene večje zmede. Le priložnost, da se kaj naučimo.  Povezava, ki jo je navedel Damjan, je dobra in vam priporočam, da jo naštudirate. Gre pa tudi z dynamic (a pozor, dynamic uporabljati je malček nevarno, ker s tem prevajalniku naročimo, da naj "nič ne pazi"). 

A recimo, da nas ne moti - potem gre takole (poglejte dva načina izvedbe seštevanja nizov!)

 public static T vsota<T>(T prvi, T drugi)
        {
            dynamic p = prvi;
            dynamic d = drugi;

            if (p is bool)
                return p == d;
            if (p is string)
            {
                dynamic rez = $"Dolz:{p.Length + d.Length}";
                return rez;
            }
            dynamic vs = p + d;
            return vs;
        }
        public static int vsota(String prvi, String drugi)
        {
            return prvi.Length + drugi.Length;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(vsota(10, 5));
            Console.WriteLine(vsota(10.5, 5.5));
            Console.WriteLine(vsota(10, 5.0));
            Console.WriteLine(vsota("10", "5"));
            Console.WriteLine(vsota<String>("10", "5"));
            Console.WriteLine(vsota(true, false));
        }

In da ne bo nesporazumov - ne, takšna naloga ne pride v poštev za izpit ;-)  Je pa fino, če te stvari poznate.