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)
//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)
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.
Thanks ! Perfect answer :P
Answer by Dani
Apr 08, 2011 at 01:45 PM
Structs are always copied, classes are always referenced
Thanks :D Pity for you Chewbacca was first, and apparently I can only select one answer as the correct one :(
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a site navigation guide.
If you are a new user to Unity Answers, check out our FAQ for more information.
Make sure to check out our Knowledge Base for commonly asked Unity questions.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
Answers and Comments
No one has followed this question yet.
Unity return error message like method not a member of Object class
NullReferenceException and script load order
All Arrayinstances get changed
Calling an object from a different JS Script and Instantiate it
Serialization - Variables won't change on original construction