C# 值类型与引用类型的异同
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