This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I know that when an array is passed to a class or method the value of its reference is sent. Hence when I pass an array to a new class/object I created and that object performs operations on that array, the values are changed in the original array. How do I pass an array so that the object creates a local copy and the original isn't altered by the new object/class/method?
but that doesn't work... same result. Any help would be much appreciated.
Yes, it worked - just not the way you expected...
The problem is that you don't just have an array, but that you have an array of arrays. What you cloned was just the outer array - the clone still referenced the same inner arrays. What you need to do is to clone those, too. Unfortunately, to my knowledge there is no shortcut to do that...
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Joined: Oct 21, 2003
So I'm guessing I just have to manually copy any multi-dimentional arrays that are passed if I don't want any references to the original?
For now that's what I did but I wish there were some shortcut.
I don't know if you'd call it a shortcut, but putting your data in some kind of immutable class that you designed for the purpose might make more sense than struggling against the capabilities of arrays.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com