- Home /
Returning a copy of a struct - c#
Hi,
I have a script that manages different types of tiles, all info of a tile is grouped together in a struct "TileInfo". Now I have a method:
public static TileInfo GetTileInfo(int id)
{
return TileInfoList.GetTileInfo(id);
//Looks up the TileInfo var with ID == id and returns the correct struct
}
Now my question, will this return a copy of that struct, or the actual struct itself ? So when I use this method, and change the returned struct, will the original change ? If so, how do I return a copy so my original struct stays the way he was ? If not, just out of curiosity, how do I make it so it returns the actual struct ? :P (I need it to return a copy, but it's still interesting :P)
(I'm not sure if I'm saying it right "returning the actual struct", or is there a word for an instance of that struct (like "object" when we're talking about classes) or is it also just called an "object" ? :D)
Thanks !
-Pablo
You want to return an object reference on constructor call?
Answer by Chewbacca · Apr 08, 2011 at 01:31 PM
structs are value types. As such the function will return a copy of that struct and NOT the actual struct itself.
See http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx for more info.
Answer by Dani · Apr 08, 2011 at 01:45 PM
Structs are always copied, classes are always referenced
Thanks :D $$anonymous$$y for you Chewbacca was first, and apparently I can only select one answer as the correct one :(
Your answer
Follow this Question
Related Questions
Is it possible to Change mesh also multi materials by a button or a key 0 Answers
Trouble with an array of classes - Cannot implicitly convert type 4 Answers
Type 'Object' does not support slicing 1 Answer
Best way to store a lot of data by script 1 Answer
Getting any type in Unity Inspector 1 Answer