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语言中的指针


参考文章1:值类型和引用类型的区别

参考文章2:C#中ref关键字的用法

posted on 2021-05-09 15:50  摸鱼time  阅读(788)  评论(0编辑  收藏  举报