ragazzi ho un serio problema.mi č crollato un fondamento del c#, a quanto pare non ho ben chiaro il funzionamento del metodo clone.se ho due array di tipo player, clonandone uno, com'č possibile che i cambiamenti si ripercuotano sul primo??
ecco lo spezzone di codice
considerato che myrais č un intero che all'inizio vale 0, perchč ho questo output??codice:Player[] gioc...; (lo inizializzo altrove) ... Player[] man=(Player[])gioc.Clone(); ... Player[] ned = (Player[])man.Clone(); ... System.Diagnostics.Debug.WriteLine("man[iv].myrais vale: " + man[iv].myrais.ToString()); ned[iv].myrais += 500; System.Diagnostics.Debug.WriteLine("ned[iv].myrais vale: " + ned[iv].myrais.ToString()); man[iv].myrais += 500; System.Diagnostics.Debug.WriteLine("man[iv].myrais vale: " + man[iv].myrais.ToString());
man[iv].myrais vale: 0
ned[iv].myrais vale: 500
man[iv].myrais vale: 1000
č chiaro che myrais di man[iv] subisce anche l'incremento fatto su myrais di ned[i].credevo che il metodo clone restituisse una copia "indipendente" dell'oggetto clonato ma evidentemente mi sfugge qualcosa... :master:
grazie a tutti

Rispondi quotando