C#类型简介

      C# 类型体系包含三种类别:值类型引用类型指针类型
  
值类型的变量存储数据,而引用类型的变量存储对实际数据的引用。引用类型也称为对象。指针类型仅可用于 unsafe 模式。
  通过装箱和取消装箱,可以将值类型转换为引用类型,然后再转换回值类型。除了装箱值类型外,无法将引用类型转换为值类型。

  1. 值类型
  值类型主要由两类组成:结构枚举。结构分为三类:Numeric(数值)类型,bool,用户定义的结构。Numeric类型又可以分为:整型浮点型decimal
  基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
  
所有的值类型均隐式派生自 System.ValueType
  与引用类型不同,不能从值类型派生出新的类型。但与引用类型相同的是,结构也可以实现接口。
  与引用类型不同,值类型无法包含 null 值。然而,可以为 null 的类型功能确实允许将 null 赋给值类型。
  每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。有关值类型的默认值的信息,请参见默认值表 
  所有的简单类型(C# 语言的组成部分)均为 .NET Framework 系统类型的别名。例如,intSystem.Int32 的别名。有关完整的别名列表,请参见 内置类型表(C# 参考) 

  2. 引用类型
  引用类型的变量又称为对象,可存储对实际数据的引用。用于声明引用类型的关键字有:classinterfacedelegate内置引用类型有:dynamicobjectstring

  3. 指针类型
  在不安全的上下文中,类型可以是指针类型、值类型或引用类型。

  4. void和var
  void用作方法的返回类型时,void 关键字指定方法不返回值。
  var从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。

原文地址:https://www.cnblogs.com/emituofo/p/2246538.html