Tudok-e egy object-tömbbe elemként beletenni egy listát? Lesz neki értelme? (C#)
public object[] SolidGameObjects = new object[2];
Rect ground = new Rect(0, 500, 600, 300);
public List<Rect> Cubes = new List<Rect>();
SolidGameObjects[0] = ground;
SolidGameObjects[1] = Cubes;
foreach(Rect gameobject in SolidGameObjects)
{ ... }
Azt szeretném hogy a foreach ciklus a tömb elemeinek a pozícióját ellenőrizze, de ha egy lista van benne, nyilván nem a lista "pozícióját" akarom, hanem a listán lévő speciális elemek pozícióját. Kérdés, hogy ez ugyan ennyire nyilvánvaló-e a fordítónak?
Nem lenne egyszerűbb csak 2 dimenziós tömb? o.O
Ott a listád (oszlopok) és az azon belüli lista (sorok).
Játékfejlesztés helyett inkább vedd elő a C# könyvednek a polimorfizmus és öröklődés részét. És egyébként valamit nagyon rosszul csinálsz, mert ennek így semmi értelme.
Ha object[]-ed van, abból nem tudsz "kivenni" Rect-et. Ennek ugyanaz az oka, mint annak, hogy minden vonat jármű, de nem minden jármű vonat. Átfordítva: minden Rect object, de nem minden object Rect. Éppen ezért nem fog működni az sem, hogy:
foreach(Rect gameobject in SolidGameObjects) {...}
Az fog működni, hogy:
foreach (object o in SolidGameObjects) {
.. if (o is Rect) {
.. .. Rect r = (Rect)o;
.. .. //csinálod vele a dolgodat
.. }
.. //Hasonlóan List<Rect>-re is.
}
Továbbra sem értem miért ne lenne OOP.
Milyen más paradigmában vizsgálnád objektumot típusát, ha nem olyanban, ami objektumokról meg típusokról szól?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!