Avatar
Jakub Ransdorf:

Definováno:
public Odpovedi[] pole_pro_odpovedi = new Odpovedi[maxi­malni_pocet_o­tazek];
Odpovedi odpovedi = new Odpovedi();
int pomocne_poradi = -1;

public class Odpovedi
{
public string true_odpoved;
public string your_odpoved;
public string otazka;
}

a v následující funkci, která je volána na zmáčknutí tlačítka, se mi vždy kompletně přepíše celé pole.

public void Pro_reseni ()
{
pomocne_poradi += 1;
odpovedi.true_od­poved = label10.Text.ToS­tring();
odpovedi.your_od­poved = label11.Text.ToS­tring();
odpovedi.otazka = pole[pomocne_po­radi].otazka;
pole_pro_odpo­vedi[pomocne_po­radi] = odpovedi;
}

proč mi "pole_pro_odpovedi" vždy přepíše prvky pole (pole_pro_odpo­vedi[0],[1],.­..,[n]) posledními hodnotami

Děkuji za reakce...

 
Odpovědět 15. ledna 13:57
Avatar
JOF
Tým ITnetwork
Avatar
Odpovídá na Jakub Ransdorf
JOF:

Mohl bys ještě vypsat tu část, kde voláš metodu Pro_reseni() ?

 
Nahoru Odpovědět 15. ledna 15:05
Avatar
jt.e
Člen
Avatar
Odpovídá na Jakub Ransdorf
jt.e:

nedal si tu vše, ale můj tip je, že přiřazuješ třídy pouze pomocí =, bez klonování.

ps, proč děláš toto: string str = label10.Text.ToS­tring(); když Text u labelu je typu string ?

Editováno 15. ledna 17:08
 
Nahoru Odpovědět 15. ledna 17:06
Avatar
Lukáš Křehula
Redaktor
Avatar
Lukáš Křehula:

Důvod je jednoduchý. Předávájí se odkazy v paměti. Řešení je v té metodě vytvořit proměnnou typu Odpovedi a tu pak zapsat do pole.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  ±0 15. ledna 17:35
Avatar
milos.loub
Člen
Avatar
Odpovídá na Lukáš Křehula
milos.loub:

Omlouvam se za palec dolu, s Tvym resenim souhlasim. Jedna instance je sdilena pro kazdou polozku v poli,proto maji vsechny polozky posledni hodnoty

 
Nahoru Odpovědět 15. ledna 19:37
Avatar
Jakub Ransdorf:

Děkuji moc, už to funguje...

 
Nahoru Odpovědět 15. ledna 21:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.