

C# pole matíc
Dobry den,
chcel by som nadeklarovat pole v C# napr 100. prvkov, pricom kazdy prvok by predstavoval maticu roznej velkosti (velkost matice zada uzivatel (napr. 5x4)), bolo by dobre keby si mozem pri kazdej matici pamataj aj jej nazov. Vedeli by ste mi prosim pomoct?
Dakujem
nešlo by to nejako takto?
zadefinoval by som triedu Matice, potom by som vytvoril pole týchto matíc:
Viete poradiť???
celkom to totiž nefunguje, viete ma opraviť?
Nehází to náhou NullReference? Protože, nikde nevoláš konstruktor té třídy Matice.
Taky bych řekl, že ti v tom konstruktoru s parametry chybí řadek:
dakujem, myslim, ze uz funguje :)
Polia dlzka a sirka su zbytočné, pretože obidva rozmery vieš zistiť priamo z poľa.
Prvý konštruktor je zrejme zbytočný, pretože ti vytvorí pole o rozmeroch nula krát nula, čo asi nie je to, čo chceš. Okrem toho, vytvorené pole neukladáš do členskej premennej, ale do lokálnej premennej (máš tam deklaráciu navyše), takže to robí niečo iné, ako očakávaš.
V druhom konštruktore zasa chýba vytvorenie samotného poľa podľa zadaných rozmerov.
A nakoniec si síce vytvoríš pole pre sto matíc, ale samotné matice už nikde nevytváraš. Chýba ti tam volanie konštruktora s požadovanými rozmermi matice, ktorú mimochodom ukladáš na druhé miesto v poli matíc (a nastavuješ jej hodnotu na pozícii 2, 2) - polia sú indexované od 0.
Pre maticu môžeš v C# použiť viacrozmerné pole (Multidimensional Arrays) namiesto "zubatého" poľa (Jagged Arrays).
Musí to byť pole? Záleží ti na poradí matíc? Čím je daný počet matíc?
Na čo si chceš pamätať ku matici jej meno - chceš podľa neho iba pristupovať k maticiam podľa ich mena?
A nakoniec, kde sa dajú zohnať používatelia, ktorí zadajú 100 rozmerov matíc? Takých by som chcel.
Pole preto, aby som mohol priamo pristupovat k danej matici a nemusel prehladavat napriklad spojovy zoznam. Pocet matic 100 je akousi hornou hranicou (asi sa nenajde nikto kto ich zada viac), meno pre maticu chcem preto, pretoze podla neho ju uzivatel identifikuje.
Tak se podívej na to moje řešení s Dictionary, je to imho přesně to co chceš.
Urcite pouzit dynamicku alokaciu z heap. Jak sa to robi v srandojazyku C# si nastuduj. V C++ zalezitost na 5riadkov (alokacia a pole smernikov)
... a slusne v style OOP (co by mal zvladat aj C#) by to malo byt tak ze sa naprogramuje trieda "Matica" ktora bude alokovat pamaat a drzat si o sebe informacie (sirka, vyska, atd), a v programe urobis pole (alebo spojkovy zoznam ak je ich pocet dynamicky) objektov triedy "Matica".