您的位置:首页 > 编程语言 > C#

C#中引用类型和值类型的理解

2010-07-17 09:34 190 查看
[align=center]值类型:[/align]

基于值类型的变量直接包含值,将一个值变量赋给另一个变量时,将复制包含的值。例如
int a = 2;
int b = a;
a = 3;
Console.WriteLine(b);
输出结果为:2,该程序的具体实现为:在线程堆栈中先为a开辟32位的空间存储2,再在线程堆栈中开辟32位的空间,遇见“=”时为b传值,值为a的值即2,当改变a的值时,存储a的内存空间变化,值变为3,但b的内存空间并没有随着变化,所以b仍为2
[align=center]引用类型:[/align]
[align=left]引用类型的变量又称为对象,,它引用的是变量的地址例如:[/align]
[align=left] int[] array = new[] { 1,2};
int[] array1 = array;
array[0] = 3;
for (int i = 0; i < array1.Length ; i++)
{
Console.WriteLine(array1[i]);
}[/align]
[align=left]数组为引用类型,具体实现为:当程序遇见 int[] array 时把int[] array 放在线程堆栈中并在托管堆中开辟一段空间存储{ 1,2},当遇见int[] array1也 把int[] array1 放在线程堆栈中,并使托管堆中存储{ 1,2}的空间指向int[] array1 因此当 array[0] = 3时,存储{ 1,2}的空间变为{ 3,2}所以指向int[] array1 的空间也为{ 3,2}。[/align]
[align=left]总之一句话:值类型赋的是值,引用类型赋的是地址[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: