在 C# 中,数据根据变量的类型以两种方式中的一种存储在一个变量中。变量的类型分为两种:引用类型和值类型,其区别如下:

  • 值类型在内存的同一处(栈)存储它们自己和它们的内容;
  • 值类型可以用等号“=”进行复制(值传递),复制后的新值和旧值其中一个改变并不影响另一个的值(即互不影响)。
     
  • 引用类型(在栈中)存储指向内存中其它某个位置(称为堆)的引用,实际内容存储在这个位置;
  • 引用类型(部分)不能直接用等号“=”进行复制,因为用等号复制时是把旧值对实际内容的引用位置复制给新值(引用传递),因而新值或旧值其中一方改变,另一方也会跟着变(相互影响)。
     

    表一:C# 中的值类型和引用类型

    表头值类型引用类型
    预定义类型int、float、double、decimal、char、bool、sbyte、byte、short、ushort、uint、long、ulongobject、string、dynamic
    自定义类型enum、structarray、class、interface、delegate

     
    另请参阅:
    https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/types

dotterel-summer
最后修改:2017 年 09 月 29 日
如果觉得我的文章对你有用,请随意赞赏