C#入门经典 Part 1
CH 1
.NET Framework主要包含一个庞大的代码库,可以在客户语言中通过OOP来使用这些代码。
Common Type System, CTS: 通用类型系统。
Common Language Runtime, CLR: 公共语言运行库。
Common Intermediate Language, CIL: 通用中间语言。
Just-In-Time(JIT)编译器: 把CIL编译为专用于OS和目标机器结构的本机代码。
Assembly: 程序集。包括可执行的应用程序文件和其他应用程序使用的库。在编译应用程序时,所创建的CIL代码存储在程序集中。除CIL外,程序集还包含元信息和可选的资源。元信息允许程序集是完全自描述的。
Global Assembly Cache, GAC: 全局程序集缓存。
托管代码: CLR对正在执行的用.NET Framework编写的代码进行管理。管理内存、处理安全性、跨语言调试、垃圾回收。
创建.NET应用程序所经历的步骤:
- 使用某种.NET兼容语言编写程序代码;
- 把代码编译为CIL,存储在程序集中;
- 在执行代码时,使用JIT编译器将代码编译为本机代码;
- 在托管的CLR环境下运行本机代码以及其他应用程序或进程。
C#是唯一彻头彻尾为.NET Framework设计的语言。
CH 3
代码大纲功能: 展开和折叠代码区域(#: 预处理指令)
1 | #region annotation |
格式化输出
1 | int a = 1; |
基本变量名的第一个字符必须是字幕、下划线或@。
Microsoft建议: 对于简单变量,使用camelCase规则,对于比较高级的命名使用PascalCase。
可以使用Unicode转义序列指定其他任何Unicode字符(如\u0027
指代'
)。
@: 保持字符串格式
1 | string str = @"This is |
double num = Convert.ToDouble(Console.ReadLine());
CH 5
溢出检查: checked
& unchecked
1 | byte a; |
Convert显示类型转换: Convert.To...()
。总是进行溢出检查。
把string
转为枚举值
1 | (enumType)Enum.Parse(typeof(enumType), enumString); |
struct结构:值类型,默认可访问性private。
数组
1 | int[] arr = new int[10]; |
多维数组
1 | double[,] arr = new double[3, 4]; |
数组的数组
1 | int[][] arr = new int[2][]; |
string
类型变量可以看成是char
变量的只读数组。
1 | string str = "..."; |