C#编程:构建云、Web和桌面应用程序
Ian Griffiths
陈影, 李纪红, 贾爱光 译
出版时间:2023年03月
页数:588
“与侧重于Visual Studio和C#交互技术的书籍不同,本书涵盖了核心语言,掌握这一核心语言对于成功构建优秀软件来说至关重要。书中涵盖了重要的概念,并通过大量的示例代码来解释它们。本书涉及的解释非常透彻、详细,内容覆盖了其他书籍很少涉及的语言边缘知识。这是一本关于C#的完整课程。”
——Jeremy Morgan
软件/开发运营工程师

不可否认,C#是当今工程师使用的最通用的编程语言之一。通过本书的全面指南,您可以了解C#和.NET的组合是多么强大......展开全部内容介绍
  1. 第1章 简介
  2. 1.1 为什么选择C#语言
  3. 1.2 C#的定义特征
  4. 1.2.1 托管代码和CLR
  5. 1.2.2 偏好一般性而不是专门化
  6. 1.3 C#标准和实现
  7. 1.3.1 微软.NET系列平台(Temporarily)
  8. 1.3.2 以.NET标准为目标的多个.NET版本
  9. 1.4 Visual Studio和Visual Studio代码
  10. 1.5 简单程序剖析
  11. 1.5.1 向现有解决方案中添加项目
  12. 1.5.2 从另一个项目引用一个项目
  13. 1.5.3 引用外部库
  14. 1.5.4 编写单元测试
  15. 1.5.5 命名空间
  16. 1.5.6 类
  17. 1.5.7 程序入口点
  18. 1.5.8 单元测试
  19. 1.6 小结
  20. 第2章 C#编程基础
  21. 2.1 局部变量
  22. 变量的作用域
  23. 2.2 语句和表达式
  24. 2.2.1 语句
  25. 2.2.2 表达式
  26. 2.3 注释和空格
  27. 2.4 预处理指令
  28. 2.4.1 编译符号
  29. 2.4.2 #error和#warnning
  30. 2.4.3 #lin
  31. 2.4.4 #pragma
  32. 2.4.5 #nullable
  33. 2.4.6 #region和#endregion
  34. 2.5 基本数据类型
  35. 2.5.1 数值类型
  36. 2.5.2 布尔类型
  37. 2.5.3 字符串和字符
  38. 2.5.4 元组
  39. 2.5.5 动态
  40. 2.5.6 对象
  41. 2.6 运算
  42. 2.7 控制流
  43. 2.7.1 if语句
  44. 2.7.2 switch语句
  45. 2.7.3 while和do循环
  46. 2.7.4 C语言风格的for循环
  47. 2.7.5 使用foreach循环进行迭代集合
  48. 2.8 模式
  49. 2.8.1 更具体的时间
  50. 2.8.2 表达式模式
  51. 2.9 小结
  52. 第3章 类型
  53. 3.1 类
  54. 3.1.1 静态成员
  55. 3.1.2 静态类
  56. 3.1.3 引用类型
  57. 3.2 结构
  58. 3.2.1 何时写入值类型
  59. 3.2.2 保证不变性
  60. 3.3 成员
  61. 3.3.1 字段
  62. 3.3.2 构造函数
  63. 3.3.3 解构
  64. 3.3.4 方法
  65. 3.3.5 属性
  66. 3.3.6 索引器
  67. 3.3.7 初始化语法
  68. 3.3.8 运算符
  69. 3.3.9 事件
  70. 3.3.10 嵌套类型
  71. 3.4 接口
  72. 默认接口实现
  73. 3.5 枚举
  74. 3.6 其他类型
  75. 匿名类型
  76. 3.7 部分类型和方法
  77. 3.8 小结
  78. 第4章 泛型
  79. 4.1 泛型类型
  80. 4.2 约束
  81. 4.2.1 类型约束
  82. 4.2.2 引用类型约束
  83. 4.2.3 值类型约束
  84. 4.2.4 具有非托管约束的值类型
  85. 4.2.5 非空约束
  86. 4.2.6 其他特殊类型的约束
  87. 4.2.7 多重约束
  88. 4.3 零值
  89. 4.4 泛型方法
  90. 类型推断
  91. 4.5 泛型和元组
  92. 4.6 内部泛型
  93. 4.7 总结
  94. 第5章 集合
  95. 5.1 数组
  96. 5.1.1 数组初始化
  97. 5.1.2 搜索和排序
  98. 5.1.3 多维数组
  99. 5.1.4 复制和调整
  100. 5.2 List<T>
  101. 5.3 列表和序列接口
  102. 5.4 实现列表和序列
  103. 5.4.1 使用迭代器实现
  104. IEnumera<T>
  105. 5.4.2 Collection<T>
  106. 5.4.3 ReadOnlyCollection<T>
  107. 5.5 使用索引和范围语法对元素进行寻址
  108. 5.5.1 System.Index
  109. 5.2.2 System.Range
  110. 5.5.3 在自己的类型中支持索引和范围
  111. 5.6 字典
  112. 字典排序
  113. 5.7 集合
  114. 5.8 队列和栈
  115. 5.9 链接列表
  116. 5.10 并发集合
  117. 5.11 不可变的集合
  118. 5.12 ImmutableArray<T>
  119. 5.13 小结
  120. 第6章 继承
  121. 6.1 继承和转换
  122. 6.2 接口继承
  123. 6.3 泛型
  124. 协变和逆变
  125. 6.4 System.Object
  126. System.Object的通用方法
  127. 6.5 可访问性和继承
  128. 6.6 虚方法
  129. 6.6.1 抽象方法
  130. 6.6.2 继承和库版本
  131. 6.7 密封方法和密封类
  132. 6.8 访问基类成员
  133. 6.9 继承与构造
  134. 6.10 特殊基类型
  135. 6.11 小结
  136. 第7章 对象生命周期
  137. 7.1 垃圾回收器
  138. 7.1.1 确定可访问性
  139. 7.1.2 意外击败垃圾回收器
  140. 7.1.3 弱引用
  141. 7.1.4 回收内存
  142. 7.1.5 垃圾回收器模式
  143. 7.1.6 暂停垃圾回收
  144. 7.1.7 意外击败压缩
  145. 7.1.8 强制垃圾回收
  146. 7.2 析构函数与终结
  147. 7.3 IDisposable
  148. 可选释放
  149. 7.4 装箱
  150. 装箱Nullale<T>
  151. 7.5 小结
  152. 第8章 异常
  153. 8.1 异常源
  154. 8.1.1 来自API的异常
  155. 8.1.2 运行时检测到的故障
  156. 8.2 处理异常
  157. 8.2.1 异常对象
  158. 8.2.2 多个catch块
  159. 8.2.3 异常过滤器
  160. 8.2.4 嵌套try块
  161. 8.2.5 finally块
  162. 8.3 抛出异常
  163. 8.3.1 重新抛出异常
  164. 8.3.2 快速失败
  165. 8.4 异常类型
  166. 自定义异常
  167. 8.5 未处理的异常
  168. 8.6 小结
  169. 第9章 委托、lambda表达式和事件
  170. 9.1 托类类型
  171. 9.1.1 创建委托
  172. 9.1.2 多播委托
  173. 9.1.3 调用委托
  174. 9.1.4 通用委托类型
  175. 9.1.5 类型的兼容性
  176. 9.1.6 后面的语法
  177. 9.2 匿名函数
  178. 9.2.1 捕获变量
  179. 9.2.2 lambda和表达式树
  180. 9.3 事件
  181. 9.3.1 标准事件委托模式
  182. 9.3.2 自定义添加和删除方法
  183. 9.3.3 事件和垃圾回收器
  184. 9.4 事件与委托
  185. 9.5 委托与接口
  186. 9.6 小结
  187. 第10章 LINQ
  188. 10.1 查询表达式
  189. 10.1.1 如何扩展查询表达式
  190. 10.1.2 支持查询表达式
  191. 10.2 延迟求值
  192. 10.3 LINQ、泛型和IQueryable<T>
  193. 10.4 LINQ标准查询运算符
  194. 10.4.1 筛选
  195. 10.4.2 Select
  196. 10.5 数据整形和匿名类型
  197. 10.6 投影和映射
  198. 10.6.1 SeletMany
  199. 10.6.2 排序
  200. 10.6.3 包含测试
  201. 10.6.4 特定项目和子范围
  202. 10.6.5 聚合
  203. 10.6.6 集运算符
  204. 10.6.7 全序列、保序运算符
  205. 10.6.8 分组
  206. 10.6.9 连接
  207. 10.6.10 转换
  208. 10.6.11 序列生成
  209. 10.7 其他LINQ实现
  210. 10.7.1 实体框架
  211. 10.7.2 并行LINQ(PLINQ)
  212. 10.7.3 LINQ to XML
  213. 10.7.4 反应式扩展
  214. 10.7.5 Tx (LINQ to Logs and Traces)
  215. 10.8 小结
  216. 第11章 反应式扩展
  217. 11.1 基本接口
  218. 11.1.1 IObserver<T>
  219. 11.1.2 IObservable<T>
  220. 11.2 用委托发布和订阅
  221. 11.2.1 使用委托创建可观察源
  222. 11.2.2 用委托订阅可观察源
  223. 11.3 序列化生成器
  224. 11.3.1 Empty
  225. 11.3.2 Never
  226. 11.3.3 Throw
  227. 11.3.4 Range
  228. 11.3.5 Repeat
  229. 11.3.6 Generate
  230. 11.4 LINQ查询
  231. 11.4.1 分组运算
  232. 11.4.2 连接运算
  233. 11.4.3 SelectMany运算符
  234. 11.4.4 聚合和其他单值运算符
  235. 11.4.5 Concat运算
  236. 11.5 Rx查询运算符
  237. 11.5.1 Merge运算符
  238. 11.5.2 Windowing运算符
  239. 11.5.3 Scan运算符
  240. 11.5.4 Amb运算符
  241. 11.5.5 DistinctUntilChanged运算符
  242. 11.6 调度器
  243. 11.6.1 指定调度器
  244. 11.6.2 内置调度器
  245. 11.7 Subjects
  246. 11.7.1 Subject<T>
  247. 11.7.2 BehaviorSubject<T>
  248. 11.7.3 ReplaySubject<T>
  249. 11.7.4 AsyncSubject<T>
  250. 11.8 适配
  251. 11.8.1 IEnumerable<T>和IAsyncEnumerable<T>
  252. 11.8.2 .NET事件
  253. 11.8.3 异步API
  254. 11.9 定时操作
  255. 11.9.1 间隔
  256. 11.9.2 定时器
  257. 11.9.3 时间戳
  258. 11.9.4 时间间隔
  259. 11.9.5 Throttle
  260. 11.9.6 样本
  261. 11.9.7 超时
  262. 11.9.8 窗口运算符
  263. 11.9.9 Delay
  264. 11.9.10 DelaySubscription
  265. 11.10 小结
  266. 第12章 程序集
  267. 12.1 程序集解析
  268. 12.1.1 .NET元数据
  269. 12.1.2 资源
  270. 12.1.3 多文件程序集
  271. 12.1.4 其他PE功能
  272. 12.2 类型标识
  273. 12.3 加载程序集
  274. 12.3.1 程序集解析
  275. 12.3.2 显示加载
  276. 12.3.3 带有AssemblyLoadContext的隔离和插件
  277. 12.4 程序集名称
  278. 12.4.1 强命名
  279. 12.4.2 版本
  280. 12.4.3 区域性
  281. 12.5 保护
  282. 12.6 小结
  283. 第13章 反射
  284. 13.1 反射类型
  285. 13.1.1 程序集
  286. 13.1.2 模块
  287. 13.1.3 MemberInfo
  288. 13.1.4 Type和TypeInfo
  289. 13.1.5 MethodBase、ConstructionorInfo和MethodInfo
  290. 13.1.6 ParameterInfo
  291. 13.1.7 FieldInfo
  292. 13.1.8 PropertyInfo
  293. 13.1.9 EventInfo
  294. 13.2 反射上下文
  295. 13.3 小结
  296. 第14章 属性
  297. 14.1 应用属性
  298. 14.1.1 属性目标
  299. 14.1.2 Compiler-Handled属性
  300. 14.1.3 CLR-Handled属性
  301. 14.2 定义和使用属性
  302. 14.2.1 属性类型
  303. 14.2.2 检索属性
  304. 14.3 小结
  305. 第15章 文件和流
  306. 15.1 Stream类
  307. 15.1.1 定位与查找
  308. 15.1.2 刷新
  309. 15.1.3 复制
  310. 15.1.4 长度
  311. 15.1.5 处理
  312. 15.1.6 异步操作
  313. 15.1.7 具体流类型
  314. 15.1.8 一种类型,多种行为
  315. 15.2 面向文本的类型
  316. 15.2.1 TextReader和TextWriter
  317. 15.2.2 具体的读写器类型
  318. 15.2.3 编码
  319. 15.3 文件和目录
  320. 15.3.1 FileStream类
  321. 15.3.2 文件类
  322. 15.3.3 目录类
  323. 15.3.4 路径类
  324. 15.3.5 FileInfo、DirectoryInfo和FileSystemInfo
  325. 15.3.6 已知文件夹
  326. 15.4 序列化
  327. 15.4.1 BinaryReader、BinaryWriter和BinaryPrimitives
  328. 15.4.2 CLR序列化
  329. 15.4.3 JSON.NET
  330. 15.5 小结
  331. 第16章 多线程
  332. 16.1 线程
  333. 16.1.1 线程、变量和共享状态
  334. 16.1.2 线程类
  335. 16.1.3 线程池
  336. 16.1.4 线程亲和性和同步上下文
  337. 16.2 同步
  338. 16.2.1 监视器和lock关键字
  339. 16.2.2 自旋锁
  340. 16.2.3 读/写锁
  341. 16.2.4 事件对象
  342. 16.2.5 屏障
  343. 16.2.6 CountdownEvent
  344. 16.2.7 信号量
  345. 16.2.8 Mutex
  346. 16.2.9 互锁
  347. 16.2.10 延迟初始
  348. 16.2.11 其他类库并发支持
  349. 16.3 任务
  350. 16.3.1 Task和Task<T>类
  351. 16.3.2 延续
  352. 16.3.3 调度器
  353. 16.3.4 错误处理
  354. 16.3.5 自定义Threadless Tasks
  355. 16.3.6 复合任务
  356. 16.4 其他异步模式
  357. 16.5 取消
  358. 16.6 并行
  359. 16.6.1 Parallel类
  360. 16.6.2 并行LINQ
  361. 16.6.3 TPL数据流
  362. 16.7 小结
  363. 第17章 异步语言特性
  364. 17.1 异步关键字:async和await
  365. 17.1.1 执行和同步上下文
  366. 17.1.2 多重操作和循环
  367. 17.1.3 返回任务
  368. 17.1.4 将异步应用于嵌套方法
  369. 17.2 等待模式
  370. 17.3 错误处理
  371. 17.3.1 验证参数
  372. 17.3.2 一个和多个异常
  373. 17.3.3 并发操作和错过的异常
  374. 17.4 小结
  375. 第18章 内存效率
  376. 18.1 避免不必要地复制数据
  377. 18.2 用Span<T>表示序列元素
  378. 18.2.1 Utility方法
  379. 18.2.2 Stack Only
  380. 18.3 用Memory<T>表示顺序元素
  381. 18.4 ReadOnlySequency<T>
  382. 18.5 使用pipeline处理数据流
  383. 在ASP.NET Core中处理JSON
  384. 18.6 小结
购买选项
定价:128.00元
书号:978-7-5226-1265-2
出版社:中国水利水电出版社