gpt4 book ai didi

C# 不可变整数

转载 作者:可可西里 更新时间:2023-11-01 03:13:14 25 4
gpt4 key购买 nike

在 Java 中,字符串是不可变的。如果我们有一个字符串并对其进行更改,我们将获得由同一变量引用的新字符串:

String str = "abc";
str += "def"; // now str refers to another piece in the heap containing "abcdef"
// while "abc" is still somewhere in the heap until taken by GC

It's been said int 和 double 在 C# 中是不可变的。这是否意味着当我们拥有 int 并稍后更改它时,我们会得到同一个变量“指向”的新 int ?同样的事情,但有堆栈。

int i = 1;
i += 1; // same thing: in the stack there is value 2 to which variable
// i is attached, and somewhere in the stack there is value 1

这样对吗?如果不是,int 以何种方式不可变?

最佳答案

跟进 Marc(完全可以接受)的回答:整数是不可变的,但整数变量可能会变化。 这就是它们被称为“变量”的原因。

整数 是不可变的:如果您的值是数字 12,则无法将其变为奇数,也无法将其涂成蓝色,等等。如果你试图通过加 1 来让它变得奇数,那么你最终会得到一个不同的值,13。也许你将该值存储在曾经包含 12 的变量中,但这不会改变 12 的任何属性。 12 与之前完全相同。

关于C# 不可变整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009180/

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