书籍推荐:《C#7.0本质论》

640?wx_fmt=jpeg

在dotNet平台中有多种开发语言可以使用,C#无疑是其中应用得最为广泛的。学习一门编程语言最好的方式就是找一本好书系统地学习,我读过的关于C#的书籍中,我认为下面三本最为经典:

  • 《C#本质论》:入门类,目前最新为《C#7.0本质论》

  • 《C# in Depth》:技巧类,目前最新第四版

  • 《CLR via C#》:底层原理类,目前最新第四版

之前看过《C#本质论》的第四版,最近拿到了最新的《C#7.0本质论》,近700页,也算是一个大部头了,因为内容比较熟悉,所以花来一两个星期就快速地略看了一遍。不要以为我归类为入门类就以为很简单,书中依然有很多高级的内容可以用来进阶,有经验的开发人员依然可以从中收获良多,并且可以作为进一步阅读《CLR via C#》的一个桥梁。

下面我谈谈我最近看了这本最新版本的感受。

翻译

阅读中译本的书,翻译质量是非常重要的,最怕的就是中文字都认识,就是不知道什么意思,还不如读原版。本书的译者是周靖,他同时也是《CLR via C#》第二三四版的译者,专业技能上没有问题,通读下来还是非常流畅,表达清晰,我觉得这就够了。

结构

一本书的内容再好,如果组织结构和排版很差,会让人不想去读或读不进去,本书在这方面我认为还是很用心的。

思维导图

平时的工作中,思维导图用的非常多,所以在本书的每一章开头看到有思维导图感觉非常亲切。每章的思维导图就是每章内容的提纲,可以让我们快速熟悉这一章节的相关知识点,并建立自己的知识体系。看完一个章节后,再回过头看看这个思维导图的内容,也便于复盘知识点是否完全掌握了。

版本标示

编程语言的发展非常的迅速,每个版本中都会新增很多新的特性,很多系统讲解的书,很难体现每个版本的变化,像《C# in Depth》这类讲解特性的书感觉又不是很系统。本书通过在页面的侧边加上Begin、End的标记完美地解决了这一问题,让我们系统学习语言的同时又能很方便地了解每个版本的变化。

640?wx_fmt=png

上图中是C#6.0对异常处理的一个特性,有了这个标记可以快速地定位到语言特性讲解的范围。并且在合上书的时候在书的侧面也能够看出哪些地方有这些标记,方便定位和查找。

这种Begin、End的标记从2.0到7.0,因为本书是7.0本质论,所以7.0的背景颜色最深,2.0最浅。

内容

只是有好的结构和排版,内容不好,我们很容易可以读完一本书,但收获甚少,本书在内容上有下面一些亮点。

设计规范

学习编程语言的语法,可以让我们写出能运行的程序,同样的一个功能10个程序员写出的代码可能都不相同,有的优雅高效,有的逻辑混乱。本书在每个章节中穿插着大量的「设计规范」,可以给我们很好的指引,避免入坑。

分类解说

考虑到阅读本书人员的水平的不同,本书在每个章节中重点突出显示了初学者主题和高级主题,让不同的人员可以各取所需。

考虑到有从其他开发语言转学C#的,书中有大量语言特性和其他语言对比的讲解,涉及到Java、C++、VB.NET等。

示例代码

  • 书中的示例代码没有平台依赖性,也就是说Windows和Mac上都能运行,这个对我这种Mac用户来说比较友好

  • 关键字加粗,关键代码有背景色区分,看起来比较清晰

总结

如果说想要用一本书来系统学习C#语言,那么这本《C#7.0本质论》将是首选。

640?wx_fmt=jpeg

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#本质论(第3版) 详细介绍C# 4.0 第1章 c#概述 1.1 hello world 1.2 c#语法基础 1.2.1 c#关键字 1.2.2 类型定义 1.2.3 main 1.2.4 语句和语句分隔符 1.2.5 空白 1.3 使用变量 1.3.1 数据类型 1.3.2 变量的声明 1.3.3 变量的赋值 1.3.4 变量的使用 1.4 控制台输入和输出 1.4.1 从控制台获取输入 1.4.2 将输出写入控制台 1.5 注释 1.6 托管执行和公共语言基础结构 1.7 c#和net版本 .1.8 cil和ildasm 1.9 小结 第2章 数据类型 2.1 基本数值类型 2.1.1 整数类型 2.1.2 浮点类型 2.1.3 decimal类型 2.1.4 字面值 2.2 更多基本类型 2.2.1 布尔类型 2.2.2 字符类型 2.2.3 字符串 2.3 null和void 2.3.1 null 2.3.2 void 2.4 类型的分类 2.4.1 值类型 2.4.2 引用类型 2.5 可空修饰符 2.6 数据类型之间的转换 2.6.1 显式转型 2.6.2 隐式转型 2.6.3 不进行转型的类型转换 2.7 数组 2.7.1 数组的声明 2.7.2 数组的实例化和赋值 2.7.3 数组的使用 2.7.4 字符串作为数组使用 2.7.5 常见错误 2.8 小结 第3章 运算符和控制流 3.1 运算符 3.1.1 一元运算符正和负 3.1.2 二元算术运算符 3.1.3 圆括号运算符 3.1.4 赋值运算符 3.1.5 递增和递减运算符 3.1.6 常量表达式 3.2 流控制概述 3.2.1 if语句 3.2.2 嵌套if 3.3 代码块 3.4 作用域和声明空间 3.5 布尔表达式 3.5.1 关系运算符和相等性运算符 3.5.2 逻辑布尔运算符 3.5.3 逻辑求反运算符 3.5.4 条件运算符 3.5.5 空接合运算符 3.6 按位运算符 3.6.1 移位运算符 3.6.2 按位运算符 3.6.3 按位赋值运算符 3.6.4 按位取反运算符 3.7 控制流语句 3.7.1 whi.1 e和do/while循环 3.7.2 for循环 3.7.3 foreach循环 3.7.4 switch语句 3.8 跳转语句 3.8.1 break语句 3.8.2 continue语句 3.8.3 go to语句 3.9 c#预处理器指令 3.9.1 排除和包含代码 3.9.2 定义预处理器符号 3.9.3 生成错误和警告 3.9.4 关闭警告消息 3.9.5 nowarn:选项 3.9.6 指定行号 3.9.7 可视编辑器提示 3.10 小结 第4章 方法和参数 4.1 方法的调用 4.1.1 命名空间 4.1.2 类型名称 4.1.3 作用域 4.1.4 方法名称 4.1.5 参数 4.1.6 方法返回值 4.1.7 语句与方法调用的比较 4.2 方法的声明 4.2.1 参数声明 4.2.2 方法返回值声明 4.3 uslng指令 4.4 main()的返回值和参数 4.5 参数 4.5.1 值参数 4.5.2 引用参数 4.5.3 输出参数 4.5.4 参数数组 4.6 递归 4.7 方法重载 4.8 可选参数 4.9 用异常实现基本错误处理 4.9.1 捕捉错误 4.9.2 使用throw语句报告错误 4.10 小结 第5章 类 5.1 类的定义和实例化 5.2 实例字段 5.2.1 实例字段的声明 5.2.2 实例字段的访问 5.3 实例方法 5.4 使用this关键字 5.5 访问修饰符 5.6 属性 5.6.1 属性的声明 5.6.2 自动实现的属性 5.6.3 命名规范 5.6.4 提供属性验证 5.6.5 读和只写属性 5.6.6 为取值方法和赋值方法指定访问修饰符 5.6.7 属性作为虚字段使用 5.6.8 属性和方法调用不允许作为ref或out参数值使用 5.7 构造器 5.7.1 构造器的声明 5.7.2 默认构造器 5.7.3 对象初始化器 5.7.4 构造器的重载 5.7.5 使用this调用另一个构造器 5.8 静态成员 5.8.1 静态字段 5.8.2 静态方法 5.8.3 静态构造器 5.8.4 静态属性 5.8.5 静态类 5.9 扩展方法 5.10 封装数据 5.10.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值