[@倚贤][¥20]什么是值传递和引用传递?
在C#中,有值类型和引用类型之分(用struct定义的类型或原生类型是值类型,用class定义的是引用类型)。 在方法中直接创建值类型的值时,这个值的整个内存块存在于栈中;而创建引用类型的值时,这个类似于指针的引用会存在栈中,而这个对象的数据会存在于堆中新分配的一块内存。 调用一个函数传参,或者发生赋值操作时,值类型的值会直接拷贝栈内存中的这个值的全部数据到新的值上;引用类型则只需要拷贝引用到新的引用上。 总而言之,传递时都会对栈中的数据进行拷贝,只是值传递拷贝的是数据本身的内存,引用传递拷贝的是指向数据的引用。
赞0
踩0