包含另一个 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" 不直接保存值,它 "references" 到 "x" (内存)。
Would y
be considered a reference type?
没有
引用类型与值类型是类型本身的属性,而不是该类型的任何变量。 Type int
是值类型;因此,所有 int
类型的变量都是值类型的变量。
在您的特定情况下,一旦 y
被赋予 x
的值,它就会获得该值的 copy,而不是对其的引用. 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"
I ask this because while "int x" is a value type, "y" doesn't hold a value directly, it "references" to "x" (a different location in memory).
y
没有引用 x
。对于 value 类型,赋值(通过 =
运算符)意味着 copy value 从右边的变量到左边的变量。
对于reference类型,表示复制reference。
我理解值类型直接保存值(int、bool 等),而引用类型(例如 类)保存对值存储位置的引用。我还没有在其他关于引用和值类型的帖子中找到这个具体问题的答案。
int x = 10;
int y = x;
// Would y be considered a reference type?
我问这个是因为 "int x" 是一个值类型,而 "y" 不直接保存值,它 "references" 到 "x" (内存)。
Would
y
be considered a reference type?
没有
引用类型与值类型是类型本身的属性,而不是该类型的任何变量。 Type int
是值类型;因此,所有 int
类型的变量都是值类型的变量。
在您的特定情况下,一旦 y
被赋予 x
的值,它就会获得该值的 copy,而不是对其的引用. 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"
I ask this because while "int x" is a value type, "y" doesn't hold a value directly, it "references" to "x" (a different location in memory).
y
没有引用 x
。对于 value 类型,赋值(通过 =
运算符)意味着 copy value 从右边的变量到左边的变量。
对于reference类型,表示复制reference。