C#语法基础15_ref(类似指针)
C#语法基础15_ref(类似指针)
值类型和引用类型区别
值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。(C#中,strcut和类一大区别就是struct是值类型)
引用类型(reference type):string 和 class统称为引用类型。当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。
ref的作用
当值类型作为形参传入在函数中被赋值时,一般创建一个值类型的副本,再对该值类型进行赋值,原来的值类型变量不发生改变。相反的引用类型的值会发生改变。
ref type varName
使值类型变量被函数调用时不创建副本,而是直接对原来的值类型变量进行操作,从而会直接改变该值类型变量的值。类似与C语言中的指针。
moyutime:本文仅是学习心得,观点仅供参考,祝愿读者学习途中快乐且不断有所收获。