【从头构筑C#知识体系】0.3 值类型和引用类型

【系列文章目录】



前言

本篇介绍值类型和引用类型

【C#文档——值类型】
【C#文档——引用类型】


一、值类型

文档中的描述:

值类型的变量包含类型的实例

一句话概括值类型的特点就是

  • 值类型直接存储值

  • 值类型存储在栈中

    值类型存储在栈中,而栈内存比堆内存释放要快

在C#中

  • 常见值类型有

    • 整型数值类型
      • sbyte
        • 取值范围:-128到127
        • 大小:8位带符号整数
      • byte
        • 取值范围:0 到 255
        • 大小:无符号的 8 位整数
      • short
        • 取值范围:-32,768 到 32,767
        • 大小:有符号 16 位整数
      • unshort
        • 取值范围:0 到 65,535
        • 大小:无符号 16 位整数
      • int
        • 取值范围:-2,147,483,648 到 2,147,483,647
        • 大小:有符号的 32 位整数
      • uint
        • 取值范围:0 到 4,294,967,295
        • 大小:无符号的 32 位整数
      • long
        • 取值范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
        • 大小:有符号的64 位整数
      • ulong
        • 取值范围:0 到 18,446,744,073,709,551,615
        • 大小:无符号 64 位整数
      • nint
        • 取值范围:取决于在运行时计算的平台 ()
        • 大小:有符号的 32 位或 64 位整数
      • nuint
        • 取值范围:取决于在运行时计算的平台 ()
        • 大小:无符号的 32 位或 64 位整数
    • 浮点型数值类型
      • float
        • 大致范围:±1.5 x 10−45 至 ±3.4 x 1038
        • 精度:6-9 位数字
        • 大小:4 个字节
      • double
        • 大致范围:±5.0 × 10−324 到 ±1.7 × 10308
        • 精度:15-17 位数字
        • 大小:8 个字节
      • decimal
        • 大致范围:±1.0 x 10-28 至 ±7.9228 x 1028
        • 精度:28-29 位
        • 大小:16 个字节
    • 布尔型
      • bool
        • 取值:0(false)或1(true)
        • 大小:1字节
    • 字符型
      • char
        • 取值:U+0000 到 U+FFFF
        • 大小:16位
    • 结构体
      • struct

二、引用类型

文档中的描述:

引用类型的变量存储对其数据(对象)的引用
对一个变量执行的操作会影响另一个变量所引用的对象。

一句话概括值类型的特点就是

  • 引用类型存储对值的引用

  • 引用类型存储在堆中

    引用类型存储在堆中,而堆内存比栈内存释放要慢,需要GC来完成垃圾回收

在C#中

  • 常见引用类型有

    • 类(class)
    • 接口(interface)
    • 委托(delegate)
    • 字符串(string)
    • 对象类型(object)
    • 动态类型(dynamic)
    • 记录(C#9.0)

思维导图

值类型与引用类型
值类型
引用类型
值类型直接存储值
值类型存储在栈中
常见值类型
引用类型存储对值的引用
引用类型存储在堆中
常见引用类型
整型数值类型
浮点型数值类型
布尔型
字符型
结构体
接口
委托
字符串
对象类型
动态类型
记录

猜你喜欢

转载自blog.csdn.net/ruanlinxi1994/article/details/125521867