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