值类型与引用类型
Posted hxjnet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了值类型与引用类型相关的知识,希望对你有一定的参考价值。
最近在做.NET开发的时候,同一个对象多次赋值,结果最终的List的内容完全一样,后来明白是值类型与引用类型未能理解透出
1、值类型与引用类型存储在不同的位置上,值类型存储在堆栈上,引用类型存储在托管堆上,这意味着值类型的每一次赋值都会创建该值的一个拷贝,而引用类型的每一次赋值都只是重新创建了一个引用,而不会在创造一个对象;
int i=1;
int a=i;
i=2;
int b=i;
此时 i是一个值类型,所以a,b实际上是对i的值进行了拷贝,此时a=1,b=2;
x = new Vecyor();
x.value = 50;
y=x;
y.value = 30;
此时 x,y都是引用类型,他们都表示对同一个对象的引用,所以y.value改变的同时x.value也改变了,即x.value ==y.value==30
2、由于引用类型是存储的对象的引用,则可将NULL值赋给引用类型
以上是关于值类型与引用类型的主要内容,如果未能解决你的问题,请参考以下文章