为什么可变结构是“邪恶的”?

德克·沃尔玛

在SO上的讨论之后,我已经读过好几遍关于可变结构是“邪恶的”的评论(就像在对这个问题的回答中)。

C#中可变性和结构的实际问题是什么?

蹦床

结构是值类型,这意味着它们在传递时将被复制。

因此,如果您更改副本,则仅更改该副本,而不更改原始副本,也不更改周围可能存在的任何其他副本。

如果您的结构是不可变的,那么所有通过值传递而产生的自动副本将是相同的。

如果要更改它,则必须通过使用修改后的数据创建该结构的新实例来有意识地做到这一点。(不是副本)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

为什么JFormattedTextField是邪恶的?

来自分类Java

为什么Class.newInstance()是“邪恶的”?

来自分类Python

为什么全局变量是邪恶的?

来自分类Java

为什么通过newCachedThreadPool创建的ExecutorService是邪恶的?

来自分类Dev

为什么Debug.Trace是邪恶的?

来自分类Dev

为什么cmake文件GLOB是邪恶的?

来自分类Dev

为什么不可变结构在移入向量时会变为可变结构?

来自分类Dev

为什么结构体和可变结构体具有不同的默认相等运算符?

来自分类Java

为什么静态变量被认为是邪恶的?

来自分类Dev

不变结构比可变结构有什么好处?

来自分类Dev

F#中不允许写入可变属性以获取结构记录。为什么?

来自分类Dev

为什么将`const`修饰符应用于具有结构值的变量会使结构值不可变?

来自分类Java

为什么是这个类可变的?

来自分类Dev

为什么我的Vuetify对话框隐藏在这个邪恶的覆盖层后面?

来自分类Dev

为什么预处理器宏是邪恶的,还有哪些替代方法?

来自分类Dev

静态方法是邪恶的,那么Laravel为什么要使用这么多的静态调用?

来自分类Dev

为什么邪恶的正则表达式会导致 ReDoS?

来自分类Dev

为什么不可变类在Groovy中是可变的?

来自分类Dev

为什么不可变对象的属性在Swift中是可变的?

来自分类Java

为什么不可变类中的可变对象可访问?

来自分类Dev

为什么不可变编程比可变编程更受欢迎?

来自分类Dev

为什么响应结构从:变为=

来自分类Dev

为什么结构文字是“文字的”

来自分类Dev

为什么WeakReference不是结构?

来自分类Dev

为什么 JsonElement 是结构类型?

来自分类Dev

为什么字典键必须是不可变的?

来自分类Java

为什么整数在Java中是不可变的?

来自分类Dev

为什么将此类视为可变的?

来自分类Dev

为什么需要可变和额外的范围

Related 相关文章

  1. 1

    为什么JFormattedTextField是邪恶的?

  2. 2

    为什么Class.newInstance()是“邪恶的”?

  3. 3

    为什么全局变量是邪恶的?

  4. 4

    为什么通过newCachedThreadPool创建的ExecutorService是邪恶的?

  5. 5

    为什么Debug.Trace是邪恶的?

  6. 6

    为什么cmake文件GLOB是邪恶的?

  7. 7

    为什么不可变结构在移入向量时会变为可变结构?

  8. 8

    为什么结构体和可变结构体具有不同的默认相等运算符?

  9. 9

    为什么静态变量被认为是邪恶的?

  10. 10

    不变结构比可变结构有什么好处?

  11. 11

    F#中不允许写入可变属性以获取结构记录。为什么?

  12. 12

    为什么将`const`修饰符应用于具有结构值的变量会使结构值不可变?

  13. 13

    为什么是这个类可变的?

  14. 14

    为什么我的Vuetify对话框隐藏在这个邪恶的覆盖层后面?

  15. 15

    为什么预处理器宏是邪恶的,还有哪些替代方法?

  16. 16

    静态方法是邪恶的,那么Laravel为什么要使用这么多的静态调用?

  17. 17

    为什么邪恶的正则表达式会导致 ReDoS?

  18. 18

    为什么不可变类在Groovy中是可变的?

  19. 19

    为什么不可变对象的属性在Swift中是可变的?

  20. 20

    为什么不可变类中的可变对象可访问?

  21. 21

    为什么不可变编程比可变编程更受欢迎?

  22. 22

    为什么响应结构从:变为=

  23. 23

    为什么结构文字是“文字的”

  24. 24

    为什么WeakReference不是结构?

  25. 25

    为什么 JsonElement 是结构类型?

  26. 26

    为什么字典键必须是不可变的?

  27. 27

    为什么整数在Java中是不可变的?

  28. 28

    为什么将此类视为可变的?

  29. 29

    为什么需要可变和额外的范围

热门标签

归档