int,bool,decimal等为值类型
List,Stream等为引用类型
用等号设置一个值类型变量等于另一个变量时,会完成复制,之后这两个变量相互之间没有任何影响;
对引用使用等号时,,这两个引用就会指向同一个对象
对于值类型和引用类型,变量声明和复制都是一样的。
int howMany = 25;
bool Scary = true;
List<double> temperatures = new List<double>();
int和bool为值类型,List为引用类型,他们都以相同的方式初始化
但一旦开始赋值就不同了。
值类型的赋值:
int fifteenMore = howMany;
fifteenMore += 15;
Console.WriteLine("howMany has {0},fifteenMore has {1}",howMany,fifteenMore);
输出:howMany has 25,fifteenMore has 40
引用类型赋值:
temperatures.Add(56.5D);
temperatures.Add(27.4D);
List<double> differentList = temperatures;
differentList.Add(62.9D);
Cosole.WriteLine("temperature has {0},differentlist has {1}",temperature.Count(),differentList.Count());
输出:temperatures has 3,differentList has 3