gpt4 book ai didi

c# - 使用可能发生变化或完全成为新实例的字段

转载 作者:行者123 更新时间:2023-11-30 18:44:38 26 4
gpt4 key购买 nike

结构通常用于不可变数据,例如电话号码,它不会发生变化,但您会得到一个新的(例如,数字 000 变为 0001 将意味着两个单独的数字)。

但是,像名称这样的信息,一个字符串,可能会发生变化(公司 abc 将其名称更改为 abcdef,或者被赋予一个新名称,如 def)。对于这样的字段,我假设它们应该驻留在可变类中而不是不可变结构中?

我构建代码的方式是在一个结构中有一个不可变的概念,比如地址(任何变化都是一个新地址),然后从像客户这样的类中引用它,因为客户总是有一个地址。所以我会把 CompanyName 或 Employer 放在类中,因为它是可变的。但是一个名字可以发生变化,因此是相同的 1 个实例,或者一个新的名字设置,而公司仍然拥有这个名字。

分配新实例的正确模式(例如新公司名称但旧名称仍归公司所有)是吗?:

string name = "";
string newName = new string();
newName = "new";
name = newName;

而突变只是标准分配模式?

谢谢

最佳答案

我不会担心这个级别的可变性/不变性。直接编写代码即可。

关于您的代码示例的一件事:

string newName = new string();
newName = "new";

以上代码将创建两个不同的字符串实例;首先将一个空字符串分配给 newName,然后分配一个新字符串 ("new")。空字符串实例的赋值很可能会被优化掉,因为它显然从未被使用过。只需将字符串分配到应有的位置即可:

string name = "new";

关于c# - 使用可能发生变化或完全成为新实例的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2537907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com