C#中的数据类型总体都分为值类型和引用类型。
对于值类型(值类型的变量包含类型的实例),每个变量都具有自己的数据副本(创建变量的时候会赋值相应的类型实例),对一个变量执行的操作不会影响另一个变量;对于引用类型(引用类型的变量包含对类型实例的引用,且仅保留对对象位置的引用),两种变量可以引用同一对象,这就意味着对一个变量执行的操作会影响另一个变量所引用的对象。引用类型和值类型遵循不同的编译时规则和运行时行为。
值类型分为struct和enum两类,内置的数值类型都是struct类型。
使用struct关键字也可以创建自定义的值类型。
引用类型的定义为:class、record、delegate、interface的类型是引用类型,以及内置的引用类型(dynamic、object、string)