[ Valerij Zajcev @ 05.03.2008. 18:19 ] @
Zasto mi izbacuje "invalid cast exception", a prema knjizi bi trebalo da mi ispise podatke za trougao i da nastavi dalje? Ako sam ispravno razumeo kada stavim interface kao parametar u taj metod ne moze da udje nijedan objekat koji ne implementira taj inteface, zasto onda mora (jer nece drugacije) da se izvrsi "cast"?
Code:

Shape[] s = new Shape[] { new Triangle("trot"), new Circle("circ"), new Square("kva") };
            for (int i = 0; i < s.Length; i++)
            {
                s[i].Draw();

                if (s[i] is IPoint)
                {
                    DrawIn3D((IDraw3D)s[i]);
                }
                else
                    Console.WriteLine("{0} not pointy!", s[i].name);
            }
[ Valerij Zajcev @ 05.03.2008. 18:26 ] @
ne mmix stani ne brisi :)
Code:

Shape[] s = new Shape[] { new Triangle("trot"), new Circle("circ"), new Square("kva") };
            for (int i = 0; i < s.Length; i++)
            {
                s[i].Draw();

                if (s[i] is IDraw3D)
                {
                    DrawIn3D((IDraw3D)s[i]);
                }
                else
                    Console.WriteLine("{0} not pointy!", s[i].name);
            }

Greska je bila jer sam provaravao pogresan interface, a sada sledi pitanje da li uvek pre nego sto probam da prosledim tip sa odredjenim interfejsom moram da proverim pomocu "if" da li je on uopste interfejs-kompatibilan?
[ mmix @ 05.03.2008. 20:19 ] @
Citat:
Valerij Zajcev: ne mmix stani ne brisi :)

Greska je bila jer sam provaravao pogresan interface, a sada sledi pitanje da li uvek pre nego sto probam da prosledim tip sa odredjenim interfejsom moram da proverim pomocu "if" da li je on uopste interfejs-kompatibilan?


U bre, ispadoh ja neki bauk :)

Inace, proveravanje implementiranog interfejsa treba da radis onda kad niz/kolekcija/stagod moze da sadzi i one elemente koji implementiraju i one koji ne. Ako ti unapred znas da su svi elementi u Shape[] takvi da implementiraju IDraw3D i da nikad ni pod kojim uslovm u taj niz ne moze da udje objekat koji ne implementira onda ne moras da radis proveru
[ 01011011 @ 05.03.2008. 21:26 ] @
jesi jesi mmix, najgori si od sve dece