C#值类型与引用类型

1、当把一个值类型的对象赋值给另一个对象的时候,就是对字段成员逐一赋值
2、当把一个引用类型的对象赋值给另一个对象的时候,
  就是内存中重定向引用变量的指向(也就相当于c++指针赋值),说白了就是两个不同的引用指向一个堆对象
3、当值类型(struct类型)包含引用类型(类类型)时, 
  对于这样的值类型(struct)对象赋值给另一个对象的时候,
  引用部分还是指向的同一个堆内存(除非重写赋值运算符),值部分还是对字段成员逐一赋值。
引用类型参数传递时:
1、如果按值传递:则被调函数也会产生一个引用指向,这个引用和主调函数里的引用指向同一个堆对象。
2、如果按引用传递:则被调函数也会产生一个引用,但是这个引用是引用主调函数里的引用,
  不是直接引用的堆对象,主调函数里的引  用直接引用的是堆对象
原文地址:https://www.cnblogs.com/handongdong/p/2212124.html