数据类型是数据在内存中存储时的“型号 “
小内存容纳大尺寸数据会丢失精确度、发生错误
大内存容纳小尺寸数据会导致浪费
编程语言的数据类型与数学中的数据类型不完全相同
强类型语言与弱类型语言的比较:
弱类型语言受的约束少
在c#语言中,if条件()里面必须是bool类型,输入以下程序会报错,
改成bool类型之后,红色波浪线消失
而在C语言中不会有这样的限制。
类型在C#语言中的作用
一个C#类型中所包含的信息有:
1.存储此类型变量所需的内存空间大小
2.此类型的值可表示的最大、最小值范围
3.此类型所包含的成员(如方法、属性、事件等)
4.此类型由何基类派生而来
5.程序运行的时候,此类型的变量在分配在内存的什么位置
6.此类型所允许的操作(运算)
在C#中,确实可以将程序的生命周期分为静态时期和动态时期两个主要阶段。
静态时期
静态时期是指程序在编译和链接过程中所处的状态,此时程序还没有开始执行。在这个阶段,C#源代码经过编译器处理,生成中间语言(Intermediate Language, IL)代码,并最终可能通过即时编译器(Just-In-Time Compiler, JIT)编译成机器码。静态时期主要包括以下几个步骤:
- 编写期 (Coding Phase):程序员编写C#源代码。
- 编译期 (Compile Time):
- 源代码被C#编译器(如csc.exe)编译成中间语言(IL)代码,并存储在
.dll
或.exe
文件中。 - 编译器还会进行类型检查、语法检查等静态分析,确保代码符合C#语言规范。
- 源代码被C#编译器(如csc.exe)编译成中间语言(IL)代码,并存储在
- 链接期 (Linking):如果项目包含多个模块,则需要进行链接,将它们合并成一个可执行文件或库。
动态时期
动态时期是指程序正在运行的阶段,在这个阶段中,程序已经被加载到内存中,并且正在执行。动态时期包括但不限于以下活动:
- 加载 (Loading):CLR(Common Language Runtime)加载程序集(assembly),并为程序分配必要的资源。
- 运行期 (Run Time):
- 中间语言(IL)代码通过JIT编译器编译成机器码并在目标机器上执行。
- 程序开始执行,包括初始化对象、调用方法等。
- 资源分配 (Resource Allocation):如内存分配、线程管理等。
- 异常处理 (Exception Handling):捕获和处理运行时错误。
- 输入输出操作 (I/O Operations):读写文件、网络通信等。