我理解值类型直接包含值(int,bool等),而引用类型(如类)包含对值存储位置的引用。我还没有在其他帖子中找到有关参考和价值类型的具体问题的答案。
int x = 10;
int y = x;
// Would y be considered a reference type?
我问这个是因为虽然“int x”是一个值类型,但“y”不直接保存一个值,它“引用”到“x”(内存中的不同位置)。
答案 0 :(得分:1)
y
会被视为参考类型吗?
没有
引用类型与值类型是类型本身的属性,而不是该类型的任何变量。类型int
是值类型;因此,int
类型的所有变量都是值类型的变量。
在您的特定情况下,y
分配x
的值后,会获得该值的副本,而不是对其的引用。 x
和y
的值可以彼此独立地分配。如果您随后更改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"
答案 1 :(得分:1)
我问这个是因为" int x"是一种价值类型," y"不直接持有一个值,它引用"到" x" (记忆中的不同位置)。
y
未提及x
。对于值类型,分配(通过=
运算符)表示从右侧的变量复制 值左侧的变量。
对于参考类型,表示复制参考。