繁体   English   中英

包含另一个int变量的int变量是否会被视为引用类型?

[英]Would an int variable containing another int variable be considered a reference type?

我知道值类型直接保存值(int,bool等),而引用类型(如类)保存对值存储位置的引用。 我还没有在其他有关引用和值类型的帖子中找到此特定问题的答案。

int x = 10;
int y = x;

// Would y be considered a reference type?

我之所以这样问,是因为“ int x”是值类型,“ y”并不直接持有值,而是“引用”“ x”(内存中的另一个位置)。

y被认为是引用类型?

没有。

引用类型与值类型是类型本身的属性,而不是该类型的任何变量。 类型int是一个值类型; 因此,所有int类型的变量都是值类型的变量。

在您的特定情况下,为y分配x的值后,它将获得该值的副本 ,而不是对其的引用。 xy的值可以彼此独立分配。 如果随后更改x ,则y的值将保持不变:

int x = 10;
int y = x;
x = 5;
Console.WriteLine(y); // Prints 10

相反,引用类型为“ track”的变量将更改为它们引用的对象:

StringBuilder x = new StringBuilder("Hello");
StringBuilder y = x;
x.Append(", world");
Console.WriteLine(y); // Prints "Hello, world"

我之所以这样问,是因为“ int x”是值类型,“ y”并不直接持有值,而是“引用”“ x”(内存中的另一个位置)。

y不引用x 对于类型,赋值(通过=运算符)意味着 从右侧的变量复制到左侧的变量。

对于引用类型,这意味着复制引用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM