Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.498 pregleda

Najnovija ↓

[C#] Invalid cast Exception :: problem 05.03.2008. u 19:19 · pre 227 meseci #1
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);
            }
Re: [C#] Invalid cast Exception :: problem 05.03.2008. u 19:26 · pre 227 meseci #2
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?
Re: [C#] Invalid cast Exception :: problem 05.03.2008. u 21:19 · pre 227 meseci #3
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
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme