Working with fields which can mutate or be new instances altogether
Posted
by dotnetdev
on Stack Overflow
See other posts from Stack Overflow
or by dotnetdev
Published on 2010-03-29T12:47:13Z
Indexed on
2010/03/29
13:03 UTC
Read the original article
Hit count: 226
Structs are usually used for immutable data, eg a phone number, which does not mutate, but instead you get a new one (eg the number 000 becoming 0001 would mean two seperate numbers).
However, pieces of information like Name, a string, can either mutate (company abc changing its name to abcdef, or being given a new name like def). For fields like this, I assume they should reside in the mutable class and not an immutable structure?
My way of structuring code is to have an immutable concept, like Address (any change is a new address completely), in a struct and then reference it from a class like Customer, since Customer always has an address. So I would put CompanyName, or Employer, in the class as it is mutable. But a name can either mutate and so be the same 1 instance, or a new name setup and while the company still owning the first name too.
Would the correct pattern for assigning a new instance (eg a new company name but the old name still owned by the company) be?:
string name = "";
string newName = new string();
newName = "new";
name = newName;
And a mutation just the standard assignment pattern?
Thanks
© Stack Overflow or respective owner