随笔分类 -  阅读笔记 / C# / 深入解析C#

摘要:第14章 C#7 的代码简洁之道 14.1 局部方法 在任何有若干语句出现的位置,都可以使用局部方法:方法、构造器、属性、索引器、事件访问器、终结器、匿名函数中甚至另一个嵌套的局部方法中。 局部方法和普通方法的声明方法基本一致,但有如下限制条件: 不能有访问修饰符(public、private 等) 阅读全文
posted @ 2025-04-17 23:05 hihaojie 阅读(41) 评论(0) 推荐(0)
摘要:第13章 引用传递提升执行效率 13.2 ref 局部变量和 ref return 13.2.1 ref 局部变量 在 C#7 之前,ref 仅用于方法参数;自 C#7 开始,ref 可以创建局部变量!它的用法如下: int x = 10; ref int y = ref x; x++; y++; 阅读全文
posted @ 2025-04-16 23:35 hihaojie 阅读(45) 评论(0) 推荐(0)
摘要:第12章 分解与模式匹配 12.1 分解元组 分解元组,即将元组的元素分解、复制给其他变量。下面是一个元组分解的示例: var tuple = (10, "text"); // 创建一个元组类型 (int, string) var (a, b) = tuple; // 隐式地将元组分解到两个新变量 阅读全文
posted @ 2025-04-13 23:02 hihaojie 阅读(11) 评论(0) 推荐(0)
摘要:第11章 使用元组进行组合 11.2 元组字面量和元组类型 元组看作 CLR 引入的一些新类型,然后提供了相应的语法糖,使得新类型更易用。 易用包括两个层面:声明和构建。 11.2.1 语法 C#7 引入了两点新语法: 元组字面量:每个元素都有一个 值 和一个可选名称 下图表示的是一个 元组实例 ​ 阅读全文
posted @ 2025-04-10 23:00 hihaojie 阅读(29) 评论(0) 推荐(0)
摘要:第10章 简洁代码的特性“盛宴” 10.1 using static 指令 10.1.1 引入静态成员 using static 指令可以简化 静态 方法的调用。 使用该指令后,以下几种成员可以通过名称直接引用,无需附带类型名: 静态字段和属性。 静态方法。 枚举值。 嵌套类型。 如下两段代码等价, 阅读全文
posted @ 2025-04-09 22:34 hihaojie 阅读(34) 评论(0) 推荐(0)
摘要:第9章 字符串特性 9.1 .NET 中的字符串格式化回顾 Info 相关内容请参考第6章 框架基础 9.1.1 简单字符串格式化 下面是使用格式化字符串的一个简单例子: // C#5 的旧格式化代码 Console.Write("What's your name? "); string name 阅读全文
posted @ 2025-04-08 22:58 hihaojie 阅读(50) 评论(0) 推荐(1)
摘要:第8章 极简属性和表达式主体成员 8.1 属性简史 C# 的属性随着语言的发展,其功能、语法也变得多样化。下面是它的演化: C#1:支持最基础的属性写法; public sealed class Point { private double x, y; public double X { get { 阅读全文
posted @ 2025-04-06 23:19 hihaojie 阅读(37) 评论(0) 推荐(0)
摘要:第7章 C#5 附加特性 7.1 在 foreach 循环中捕获变量 在 C#5 之前,根据语言规范中对 foreach 循环的描述,每个 foreach 循环都只会声明一个迭代变量,该变量在原始代码中是只读的,但之后每次迭代都会赋一个新值。即如下两段代码等价: foreach (string na 阅读全文
posted @ 2025-04-02 21:44 hihaojie 阅读(37) 评论(0) 推荐(0)
摘要:第6章 异步原理 6.1 生成代码的结构 异步模式的实现原理是基于 状态机 的,它负责追踪 async 方法当前的执行进度。从逻辑上讲,可以分为以下 4 种状态: 未启动 正在执行 暂停 完成(成功或 faulted) Eureka 这里的“暂停”,指程序运行至 await 处,任务未完成时,当前方 阅读全文
posted @ 2025-04-01 08:57 hihaojie 阅读(36) 评论(0) 推荐(0)
摘要:第5章 编写异步代码 5.1 异步函数简介 C# 5 引入了异步函数的概念。异步函数可以指某个由 async 修饰符修饰的方法或者匿名函数,它可以对 await 表达式使用 await 运算符。 5.2 对异步模式的思考 5.2.1 关于异步执行本质的思考 await 在 C#中的任务本质上是请求编 阅读全文
posted @ 2025-03-31 22:53 hihaojie 阅读(128) 评论(0) 推荐(0)
摘要:第4章 C#4:互操作性提升 4.1 动态类型 4.1.1 动态类型介绍 我们在第 3 章有提到:在特定上下文中查找符号含义的过程称为 绑定 。 动态类型:绑定过程从编译时转移到了 执行 期; 此时编译器生成的 IL 代码的功能是执行绑定并执行绑定的结果。这一切都是由 ​dynamic​ ​ 关键字 阅读全文
posted @ 2025-03-30 15:04 hihaojie 阅读(54) 评论(0) 推荐(0)
摘要:第3章 C#3:LINQ 及相关特性 3.1 自动实现的属性 C#3 增加了自动属性,由编译器负责实现原先的访问器部分(编译器会自动创建后台字段)。试比较如下两段代码: // C#3 之前 private string name; public string Name { get { return 阅读全文
posted @ 2025-03-29 09:21 hihaojie 阅读(20) 评论(0) 推荐(0)
摘要:第2章 C#2 2.1 泛型 2.1.1 示例:泛型诞生前的集合 在泛型诞生之前(.NET1),开发者常用如下方式创建集合: 数组 普通对象集合 如 ArrayList​、Hashtable​ 专用类型集合 如 StringCollection​ // 数组 static string[] Gene 阅读全文
posted @ 2025-03-27 22:59 hihaojie 阅读(47) 评论(0) 推荐(0)