C# 图解教程 第5版 —— 第4章 类型、存储和变量

文章目录

    • 4.1 C# 程序是一组类型声明
    • 4.2 类型是一种模板(*)
    • 4.3 实例化类型
    • 4.4 数据成员和函数成员
    • 4.5 预定义类型
    • 4.6 用户定义类型
    • 4.7 堆和栈(*)
    • 4.8 值类型和引用类型
    • 4.9 变量
      • 4.9.1 变量声明
      • 4.9.2 多变量声明(*)
      • 4.9.3 使用变量的值(*)
    • 4.10 静态类型和 dynamic 关键字
    • 4.11 可空类型(*)

4.1 C# 程序是一组类型声明

  • C# 程序或 DLL 的源代码是一组类型声明
  • 类型声明中必须包含 Main 方法的类

4.2 类型是一种模板(*)

4.3 实例化类型

​ C# 程序中,每个数据项都是某种类型的实例。

4.4 数据成员和函数成员

  • 数据成员:保存了类对象或整个类的相关数据。
  • 函数成员:执行代码,定义类型的行为。

4.5 预定义类型

​ C# 中,数值类型不具有布尔意义。

C# 图解教程 第5版 —— 第4章 类型、存储和变量_第1张图片
图4.1 预定义类型

​ 所有预定义类型都直接映射到底层的 .NET 类型,C# 的类型名称就是 .NET 类型的别名。

​ 应尽量使用 C# 类型名称而不是 .NET 类型名称。

表4.1 预定义简单类型
C# 图解教程 第5版 —— 第4章 类型、存储和变量_第2张图片
表4.2 预定义非简单类型
C# 图解教程 第5版 —— 第4章 类型、存储和变量_第3张图片

4.6 用户定义类型

​ C# 中可创建的 6 中用户类型:

  • 类(class)
  • 结构(struct)
  • 数组(array)
  • 枚举(enum)
  • 委托(delegate)
  • 接口(interface)

4.7 堆和栈(*)

4.8 值类型和引用类型

  • 值类型:需要一段单独的内存

    • 用于存储实际数据
  • 引用类型:需要两段内存

    • 第一段存储实际数据,位于堆中
    • 第二段是一个引用,指向堆中的数据
C# 图解教程 第5版 —— 第4章 类型、存储和变量_第4张图片
图4.2 非成员数据的存储
表4.3 C# 中的值类型和引用类型
C# 图解教程 第5版 —— 第4章 类型、存储和变量_第5张图片

4.9 变量

表4.4 4种变量
C# 图解教程 第5版 —— 第4章 类型、存储和变量_第6张图片

4.9.1 变量声明

  1. 变量初始化语句

无初始化语句的局部变量有一个未定义的值,在赋值之前不能使用。

C# 图解教程 第5版 —— 第4章 类型、存储和变量_第7张图片
图4.3 变量初始化语句
  1. 自动初始化

    一些类型的变量在声明时如果没有初始化语句,会被自动赋值,而另一些则不能。表 4.5 展示了这些情况。

表4.5 变量类型
C# 图解教程 第5版 —— 第4章 类型、存储和变量_第8张图片 image-20231015150917842

4.9.2 多变量声明(*)

4.9.3 使用变量的值(*)

4.10 静态类型和 dynamic 关键字

  • 静态类型:变量的类型在编译的时候确定并且不可更改
  • dynamic:动态类型,不会被编译器做类型检查

4.11 可空类型(*)

你可能感兴趣的:(C#,图解教程,第5版,c#,开发语言)