Kezdőoldal » Számítástechnika » Programozás » C# Hogyan lehet létrehozni...

C# Hogyan lehet létrehozni egy változót, amelynek neve egy már meglévő string változóban szerepel?

Figyelt kérdés

pl:

string nev = "film";

int [változónév=film];



2014. máj. 2. 11:00
 1/10 ejbenjaro ***** válasza:
Érdekes, hogy sokakban felmerül ennek igénye, holott a programnyelvek jó része nem támogatja ezt a funkciót. Én ugyan nem konyítok a C#-hoz, de próbálj meg név érték párokkal operálni pl.: [link] , vagy ha nem csupán egy ilyened van, akkor nézz utána a hashtable-nek.
2014. máj. 2. 11:11
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

Egy leegyszerűsített változatot kérdeztem.


Köszönöm a válaszod!


Az feladatom hanoslóbb ehhez:

Film film1 = new Film("SpongyaBob");


Ha a felhasználótól új filmcímet kérek, akkor bővítse a Film osztályt film2 névvel.

Film [film2] = new Film("Felhasználó által megadott cím");

2014. máj. 2. 11:23
 3/10 A kérdező kommentje:

Előző kommentem bővítve:

Úgy gondoltam felveszek egy számláló változót, amit hozzáteszek a film után:

int i;

string nev = "film"+i.Tostring()

Film [nev] = new Film("Felhasználó által megadott cím");

2014. máj. 2. 11:29
 4/10 anonim ***** válasza:
Ez pontosan miben lenne jobb mint egy Vector?
2014. máj. 2. 11:37
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:

Ehhez én Dictionary-t használnék, ahol a kulcs a "változó neve", míg az értéke az osztály egy példánya.

Ugyanakkor nem értem, hogy mire kell ez neked. Film címét inkább magában a példányban tárolnám, nem pedig a rá mutató referencia nevében.

2014. máj. 2. 11:53
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

Úgy érted:

Film[] film = new Film[2];

int számláló = 0;

film[számláló++] = new Film("Spongyabob");

film[számláló++] = new Film("Felhasználó által megadott cím");


Nem rossz, de ennek véges a mérete.

Persze tehetném akkor láncolt listában, de nekem méghasonlóbb ahhoz a feladatom, hogy:

Film film1 = new Film("SpongyaBob");

Lista<Film> lista = new Lista<Film>();


És Film osztályt már nem tudom hogy betenni a láncolt listába, ha az is láncolt lista.

Ezért lenne jobb a változónév változtatós forma.

2014. máj. 2. 11:56
 7/10 anonim ***** válasza:

Nem tudom, hogy #6-ost kinek írtad, de azért válaszolok.

A List class NEM láncolt listaként kerül megvalósításra, hanem egy tömböt alkalmaz a háttérben. Ha kevésnek bizonyul a tömb mérete, akkor egy újat (dupla akkora mérettel) hoz helyette létre. Magyarán működik a következő:

List<Film> filmLista=new List<Film>(10); // Érdemes kezdeti kapacitást megadni, ha be tudod lőni, kb mennyi elemet akarsz tárolni

Film film = new Film("Valami filmcím");

_filmLista.Add(film);


Természetesen listákat is lehet a listában tárolni.

List<List<Film>> listCeption = new List<List<Film>>();

List<Film> filmList1 = new List<Film>(1);

Film film1 = new Film("Filmcím");

filmList1.Add(film1);

listCeption.Add(filmList1);

2014. máj. 2. 12:15
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:

Köszönöm válaszod!

A leírásodból azt vettem ki hogy, megoldásom lehet:

List<Film> filmLista = new List<Film>;

filmLista.Add(new Film("SpongyaBob");

filmLista.Add(new Film(Console.ReadLine());

Ez jónak tűnik!


Ha létre szeretnék hozni egy másik listát:

Lista2<Film> filmLista2 = new Lista2<Film>

ugyanúgy fogja tartalmazni az előzőleg létrehozott (new Film("SpongyaBob) és new Film(Console.ReadLine()) példányokat?

2014. máj. 2. 13:19
 9/10 A kérdező kommentje:

Előző kérdésem átírom:

A Film osztály tartalmazza-e magában azokat a létrehozott példányokat, és ha igen hogyan hivatkozok rá, hogy megadhassam máshol is?

(Mivel nincs példánynevük, csak new Film(..) lettek létrehozva.

2014. máj. 2. 13:23
 10/10 anonim ***** válasza:

Ha egy új listát hozol létre, akkor az csak akkor fogja tartalmazni egy másik lista elemeit, ha azt paraméterül adod a konstruktornak. Azaz:

List<Film> list1 = new List<Film>();

list1.Add(new Film("Blabla"));

List<Film> list2 = new List<Film>(); // list2 üres lesz.

List<Film> list3 = new List<Film>(lista1); // list3 tartalmazza list1 elemeit is.


"A Film osztály tartalmazza-e magában azokat a létrehozott példányokat..."

A Film osztály nem tartalmaz semmit. Egészen pontosan lehetnek osztályszintű változók, de azokat ugye neked kell megadnod, mint ahogy a példány változóit is...

Talán egyszerűbb lenne, ha leírnád, mit szeretnél csinálni. Nem ilyen "alacsony szinten", hogy A osztály tartalmazza B elemeket, hanem hogy konkrétan mit akarsz tárolni, milyen műveleteket akarsz rajtuk végrehajtani. Ne haragudj, de úgy tűnik számomra, hogy neked az OO alapokkal vannak gondjaid, nem csak a nyelvvel...

2014. máj. 2. 16:46
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!