Kezdőoldal » Számítástechnika » Programozás » Tudok-e egy object-tömbbe...

Tudok-e egy object-tömbbe elemként beletenni egy listát? Lesz neki értelme? (C#)

Figyelt kérdés

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?



2017. dec. 31. 22:03
 1/7 anonim ***** válasza:

Nem lenne egyszerűbb csak 2 dimenziós tömb? o.O

Ott a listád (oszlopok) és az azon belüli lista (sorok).

2017. dec. 31. 22:42
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
Nem lesz.
2017. dec. 31. 23:02
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

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.

}

2018. jan. 1. 02:20
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
Egy csúnyácska megoldás lehetne a castolás, de ugye akkor az meg már nem OOP szemléletű...
2018. jan. 1. 12:28
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
Hogy a fenébe ne lenne a castolás OOP??
2018. jan. 1. 12:47
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Ahhoz, hogy biztonságosan castoljon meg kell vizsgálni vmilyen typeof,instanceof,stb. dologgal, hogy castolható-e. Ez pedig nagyon nem OOP, de legalábbis nehezen bővíthető, ha kell. (De ha tévedek javíts ki, szívesen tanulok)
2018. jan. 1. 12:52
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

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?

2018. jan. 1. 13:04
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!