第17期-使用 Index 和 Range 结构体
- 2022/11/9 21:28 | 21分钟
- 免费
从 C# 8.0 开始,可以使用更加优雅的方式访问数组元素和裁切数组,使用 Index 结构体顺序或倒序访问数组元素,使用 Rang 结构体裁切数组范围,使用更优雅的方式截取字符串,反编译查看实现原理。
从 C# 8.0 开始,可以使用更加优雅的方式访问数组元素和裁切数组,使用 Index 结构体顺序或倒序访问数组元素,使用 Rang 结构体裁切数组范围,使用更优雅的方式截取字符串,反编译查看实现原理。
迭代器是一种设计模式,提供一种顺序访问一个聚合对象中各个元素的方法,而又无须暴露该对象的内部表示,反编译 foreach 语句的原理,理解 IEnumerable 和 IAsyncEnumerable 迭代器接口原理,使用迭代器方法的枚举源,同步迭代器和异步迭代器,深入理解迭代器。
弃元是一种占位符变量,弃元使代码意图更加明确,可以增强其可读性和可维护性,元组和对象析构中的弃元运算符,模式匹配中的弃元运算符,方法 OUT 参数占位符弃元,独立弃元占位符,下划线也是有效标识符。
可空的引用类型可帮助开发者在编译期间发现潜在的异常,在项目和源码级别开启可空的引用类型支持,可空类型的判断,包容运算符,合并运算符,条件运算符,使用分析器检查可空性,使用特性注解的方式表达可空意图,改变分析器行为,可空的引用类型在 EF Core 中的应用。
需要表示基础值类型的未定义值时,使用可空的值类型,声明和赋值,检查可为空值类型的实例,从可为空的值类型转换为基础类型,提升的运算符,如何确定可为空的值类型。
可格式化对象转换接口,字符串内插法格式,字符串对齐,格式化字符串,内插逐字字符串和转义序列,创建特定区域性字符串,使用多引号原始字符串文本,内插字符串编译原理,优雅的字符串拼接方案,数据库连接字符串拼接,路径拼接和路径合并,网址查询参数拼接技巧,编写自定义内插字符串处理程序。
高效编写优雅的逻辑判断语句,不仅改善了代码的性能,更重要的是还提高了代码的可读性,通过最全面的示例展示模式匹配的各种语法规则,声明和类型模式,常量模式,关系模式,逻辑模式,属性模式,元组位置模式,关于 var 模式,弃元模式,带括号模式。
面向对象的基本原则,抽象是将实体的相关特征和交互建模为类,封装的目的是隐藏对象的内部状态和功能,并仅允许通过一组公共函数进行访问,继承可根据现有抽象创建新抽象的能力,多态性是指跨多个抽象以不同方式实现继承属性或方法的能力,通过银行卡开户示例理解面向对象设计的原则。
理解记录类型,引用类型记录和值类型记录,限制记录类型属性的读写,简化位置记录类型,记录类型的序列化,不可变性,值相等性,非破坏性拷贝,内置显示格式设置,记录类型的继承,记录类型的元组析构器,通过反编译探索记录类型。
元组的概念,声明元组,探索元组的语法糖与反编译结果,理解 ValueTuple 与 Tuple 的不同和之间的相互转换,元组作为方法的返回值,元组的赋值与比较,析构元组和别名,自定义类型的元组析构器,其实很多系统类型本身都支持元组析构方法,记录类型默认提供析构方法。
枚举类型是由基础整型数值类型的一组命名常量定义的值类型,定义枚举,实例化枚举,具有位标志的枚举类型,按位运算,枚举类型转换,枚举元素判断,枚举格式化字符串,访问枚举的成员,为枚举类型添加方法,枚举类型的界面显示与描述扩展,多语言显示实现,枚举设计准则。
布尔类型结构解析,布尔值转换为字符串,字符串转换为布尔值,值比较,自定义格式化提供程序,布尔常量字符串表示,其它类型转为布尔类型,将布尔值用作二进制值,字符类型与字符串的关系,学习字符结构所提供的方法。
合理使用数据类型可有效利用内存空间,整形数值类型,浮点型数值类型,数值类型的静态常量,类型转换系统,数值与字节,字节与字符串,运算符支持,相等性比较,标准数字格式字符串,复合格式字符串,进制表示和转换,隐式类型由后缀确定,显式启用溢出检查。
强类型语言,变量和常量都具有一个特定的类型,理解值类型和引用类型的继承图,值类型包含类型的实例,引用类型包含对类型实例的引用,在内存分配上,值类型存储在栈上,赋值即拷贝副本,引用类型存储在堆上,也称为托管堆,赋值即引用,在内存回收上,值类型堆栈返回即回收,引用类型需要 GC 垃圾回收器。
使用命名空间组织类型,使用嵌套关系定义命名空间,为文件中定义的所有类型声明一个命名空间,命名空间别名,使用静态修饰符导入指定的类型,基于项目全局引入命名空间,指定多个修饰符的命名空间,命名空间别名限定符,隐式引用命名空间,微软命名空间规范准则,使用 API 预览器查找指定类型所在的程序集和命名空间。
类型和变量,值类型和引用类型,程序的执行结构,使用 ILDASM 查看 IL 中间语言,转储 IL 中间语言,直接修改 IL 代码程序逻辑,使用 ILASM 将 IL 中间语言生成为可移植可执行文件,关于 .NET 探秘 MSIL 权威指南,学习 ILSPY 反编译工具,使用 Dotfuscator 工具全方位保护应用程序,推荐命令行解析器开源库。
学习新式的,面向对象的,类型安全的编程语言,理解 C# 语言与 .NET 体系结构,从程序启动说起,新的 C# 模板生成顶级语句,深入代码编译过程,研究 MSBuild 构建,单文件编译,源代码生成器能够在编译用户代码时进行检查,并动态生成新的 C# 源文件,以添加到用户的编译结果中。