Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C# volání funkce

zdravím, mám takový problém, když zavolám funkci tak mi přepíše i parametr té funkce se kterým jsem ho volal, asi je chyba v definici, může mi prosím někdo napsat jak to má být? Díky

public string[,] TahCerny(Tah t, string[,] sachovniceT)
        {
            if (Math.Abs(t.xKon - t.xPoc) <= 1 && Math.Abs(t.yKon - t.yPoc) <= 1)
            {
                sachovniceT[t.xPoc, t.yPoc] = " _ ";
                sachovniceT[t.xKon, t.yKon] = " B ";
            }
            else
            {
                sachovniceT[t.xPoc, t.yPoc] = " _ ";
                sachovniceT[(t.xKon + t.xPoc) / 2, (t.yKon + t.yPoc) / 2] = " _ ";
                sachovniceT[t.xKon, t.yKon] = " B ";
            }
            return sachovniceT;
        }

definice:

string[,] sachovniceTemp = new string[9, 9];

a to volání:

sachovniceTemp = TahCerny(tah, sachovniceTah);
Předmět Autor Datum
pole aj string je referencny typ http://msdn.microsoft.com/en-us/library/s6938f28%2 8v=vs.80%29.aspx
MM.. 08.08.2012 15:22
MM..
String je sice referenční, ale zároveň immutable, takže tam by to nevadilo.
Wikan 08.08.2012 19:31
Wikan
tak to uz neviem ale v kazdom pripade ked chce "temp" sachovnicu tak si ju musi vytvorit sam :) Inac…
MM.. 08.08.2012 19:36
MM..
Díky za reakce, potřebuju ale vytvořit kopii toho sachovniceTah do sachovniceTemp aby byla na ní nez…
Portalek 09.08.2012 07:51
Portalek
asi jedinou moznost jsem nasel fyzicky to po indexech zkopirovat :(
Portalek 09.08.2012 09:41
Portalek
keby si to robil jak clovek, tak by si mal pole cisel a ne stringov jak uz pisal nizsie los, to by m… poslední
MM.. 10.08.2012 01:37
MM..
Prečo si pamätáš šachovnicu ako pole 9x9? Prečo máš v hodnotách tie medzery? Prečo si tam pamätáš re…
los 09.08.2012 22:00
los

tak to uz neviem ale v kazdom pripade ked chce "temp" sachovnicu tak si ju musi vytvorit sam :) Inac potom ani nema vobec zmysel tam navratova hodnota ked nevytvori novu sachovnicu.

... resp vlastne on tu temp sachovnicu vytvoril takze robi uplnu blbost ked tam zas priradzuje do premennej sachovnicaTemp odkaz na original sachovnicu (navr.hodnotu fcie)
To dotazovatel: SachovnicaTemp daj ako parameter funkcie a funkcia bude bez navratovej hodnoty.

keby si to robil jak clovek, tak by si mal pole cisel a ne stringov jak uz pisal nizsie los, to by mohlo ist kopirovat nejakou fciou na kopiu pola alebo kopiu useku pamate apod. Ale je to fuk mozes to kopirovat aj v cykle. Praca s textovymi stringami je VELMI neefektivna a u sachu je efektivita vypoctov imho dost zasadne kriterium.
Otazka je vobec naco potrebujes temp sachovnicu :)

Zpět do poradny Odpovědět na původní otázku Nahoru