当前位置: 首页 > 编程日记 > 正文

孔雀翎----《Programming C# 》中文版 第4版

孔雀翎----《Programming C# 》中文版 第4版

主页:http://blog.csdn.net/21aspnet/           时间:2007.8.7

电子工业出版社给我邮寄了此书,所以本人可以先在出版之前一睹为快。

本人曾看过300多本.NET方面的书,感慨颇深。其实一本好书可以影响一个人很多,而一本很差的书可能就会让人误入歧途。

我对好书的理解是思路清晰,结构良好,最好是能让初学者有一个总体的框架认识,记得很小的时候看《学习的革命》中说到记忆的时候最好是把整个知识体系想像成一颗圣诞树,然后我们把礼物放在树杈上。

.NET的国外好书可以分为4大系:

第一也是影响最广的是Wrox出版社的红皮书,这系的书大多是作者的头像,整本书封面红色。

第二就是Microsoft出版社的黑皮书,这系的书大多是一个机械扳手或者仪器仪表,整本书封面黑色。

第三是Oreilly的动物世界,这系的书封面都有一个动物,当然这些动物都不是随便选得而是有些暗喻!

第四是PEASON的方块系列,这系的书封面就是国际象棋棋盘里带几幅图画。

相比较而言我觉得红皮书往往讲的博而不精,结构混乱可能作者多人的缘故,不过Wrox的书还是很实用的不可不读,黑皮书呢则讲的有些晦涩,可能作者本身是语言的设计者所以讲的很“原理”,要知晓原理黑皮书也不可不读。相对而言Oreilly和PEASON的书则恰到好处,本本都是经典。

如果你是一个初学者或者想补缺补差《Programming C#》中文版第4版是很好的入门书,这本书可以说是所有C#书中最经典的一本。

第一章:讲了C#与.NET框架,作者没有大讲特讲,只是画龙点睛一般,其实对于初学者没有必要一开始就讲.NET深层次的运行机理,那样只会让初学者云里雾里,对于.NET的编译过程与NSIL初学者了解即可。但是---把.NET框架放第一章可见作者希望大家学习的时候首先树立.NET框架的思想,并且在以后的学习道路上时刻围绕.NET框架。后面几章作者再往这颗树上放礼物。

第二章:以一个经典的“Hello Word”开头,作者以此为“砖”引出了类,方法,命名空间这些“玉”!其实C#语言也就是围绕这类和方法进行,可以说是程序员天天会写的。作者引出了“Hello Word”运行的原理并讲了运行最基本的程序需要怎么做!还有一条暗线讲了基本的调试方法,因为写程序不可避免会调试,所以作者在这一章希望大家能明白最基本的程序从引用系统类,到写自己的代码,到编译调试运行。

第三章:有了第2章的兴趣,大家自然想学习怎么写出更多更好的程序。这一章就讲C#语言最基础的部分:变量,语句,操作符,if...else等等。作者可以说是字字经典,其他书中的要点本书都涵盖了,作者还会在适当的地方讲一点注意和提高的地方,例如作者在本章穿插了“堆栈与堆”等容易混淆的内容,这种风格贯穿全书。可以说这一章帮初学者在最短的时间内学到了最全的基本知识点!

第四章:讲“类”与“对象”,一段段的方法组成了类,可以说程序的好坏主要就是类怎么组织。作者首先讲怎么定义类,然后讲对象的创建以及销毁,以及可读属性,对象的封装。作者在这里希望用最明白的语言加上小例子一步步把大家引到面向对象的大门。

第五章:继承与多态。类之间的重复自然难免,所以面向对象就需要继承父类和派生子类,作者此章的目的在于提高读者面向对象的水平。作者讲了怎么样可以实现继承以及调用父类的方法。至于抽象类密封类作者自然也免不了浓墨写上几笔,可以说再复杂的程序再复杂的系统也无非就是类之间的继承派生调用,所以作者再这章安排了很多精彩内容,为读者演绎继承与多态的真谛!

第九章:数组集合泛型集合,程序自然离不开数据,这一章就为读者讲述在什么时候用到数组,什么时候用到集合,数组和集合的区别,以及C#2.0新增的泛型集合究竟有什么好处和特别之处。还有堆栈和队列以及字典的妙用。可以说这一章讲的种种数据列表都会在不同的地方被用到如果不知道,那么可能其他方法也能实现,但是却没有最好的方法用的那么省心!

后面其他章节讲了正则表达式,因为程序中会经常遇到字符串匹配。对于WinForm和Web程序作者各有一章这样兼顾并取,Web服务也用了一章。基本的数据库连接以及怎么样读取,更新,删除,插入数据的ADO.NET作者也有一章。

至于.NET的一些高级和冷僻的知识例如:反射,元数据,线程,死锁,流,组件化作者也都深入浅出的做了介绍,读者看过之后就会高屋建瓴。

可以说这本书看完之后读者就会搭建一个很好很全面的只是框架。我们都知道.NET的全部知识如果写书就是再写10本也不可能写完。作者这一本书可以看作是.NET的全部知识的高度浓缩。对于初学者这是一本不得不看的好书,这本书将带你深入浅出,即使对于高手闲来没事随手翻翻也可以做到温故知新!

相关文章:

iOS开发小技巧--textField成为密码框,view加载完后textField获取焦点

文本框安全输入:Secure Text Entry(安全文本输入)view加载完后textField获取焦点的正确做法

python出现typeerror原因是_Python 文件添加列表数据后TypeError原因

# -*- coding: utf-8 -*-#打开文件,将文件读入字符串colfopen(pride.txt)textf.read()colstext.split()f2open(data.txt,w)for col in cols:f2.write(col)f2.write(\n)以上代码运行无误。# -*- coding: utf-8 -*-#打开文件,将文件读入字符串colfopen(pri…

LVM逻辑卷创建管理

LVM(逻辑分区)的创建顺序:物理分区-物理卷-卷组-逻辑卷-挂载。物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID&am…

Linux环境PHP5.5以上连接SqlServer2008【全网最经典无错版】

linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5.28 Sqlserver版本:2008 FreeTDS版本:0.95 关于Linux环境安装NginxPHP参考Linux环境Nginx安装与调试以及PHP安装 即可。一般来说,PHPmysql是…

python矩阵运算库效率_python - 布尔矩阵运算的最快方法_performance_酷徒编程知识库...

只需在compute中进行一些小的更改:def compute(m, n):m np.asarray(m)n np.asarray(n)# Apply mask N in advancem2 m & n# Pack booleans into uint8 for more efficient bitwise operations# Also transpose for better caching (maybe?)mb np.packbits(…

hibernate-session中的方法

1.操作实体对象的方法 save() 保存 update() 更新 saveOrUpdate() 保存或更新 delete() 删除 2.操作缓存的方法 clear() 清除所有缓存 evit() 将指定对象清除出缓存 flush() 刷新到数据库中()马上执行sql语句,不会清除session缓存&#x…

[JZOJ4786]小a的强迫症

[JZOJ4786]小a的强迫症 题目大意: 有\(n(n\le10^5)\)种颜色的珠子,第\(i\)种颜色有\(num[i]\)个。你要把这些珠子排成一排,使得第\(i\)种颜色的最后一个珠子一定在第\(i1\)种珠子的最后一个珠子之前,求方案数。 思路: …

Servlet,过滤器,监听器,拦截器的区别

由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时 候,发现为什么struts1要用servlet,而struts2要用filter呢?一时又…

Linux环境Nginx安装多版本PHP

关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5.28 & php5.4.44 所谓多版本多版本PHP就是php5.4…

java 扫描tcp端口号_多线程TCP端口扫描 java实现

界面部分:import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax…

【go同步编程】

锁 互斥锁 函数write中的这条defer语句保证了在该函数被执行结束之前互斥锁mutex一定会被解锁。 var mutex sync.Mutex func write() { mutex.Lock() defer mutex.Unlock() // 省略若干条语句 } func repeatedlyLock() {var mutex sync.Mutexfmt.Println("Lock the lock. …

Linux环境PHP7.0安装

PHP7和HHVM比较PHP7的在真实场景的性能确实已经和HHVM相当, 在一些场景甚至超过了HHVM。HHVM的运维复杂, 是多线程模型, 这就代表着如果一个线程导致crash了, 那么整个服务就挂了, 并且它不会自动重启。另外它采用JIT, 那么意味着, 重启以后要预热, 没有预热的情况下, 性能较为…

myeclipse java可视化_使用MyEclipse可视化开发Hibernate实例

使用MyEclipse可视化开发Hibernate实例2.7节的例子源代码在配套光盘sourcecode/workspace目录的chapter02_first项目中。这个实例主要演示如何使用MyEclipse的可视化开发工具开发Hibernate应用,利用MyEclipse可以提高我们开发Java EE应用的效率。操作的数据库表还是…

day20 文件上传下载

2019独角兽企业重金招聘Python工程师标准>>> 文件上传基础及api解析: 文件上传最终版: 文件下载: 转载于:https://my.oschina.net/u/2356966/blog/648774

腾讯开源基于 mmap 的高性能 key-value 组件 MMKV

腾讯微信团队宣布开源 MMKV ,这是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,主打高性能和稳定性。MMKV 从 2015 年中至今,在 iOS 微信上使用已有近 3 年,其性能和稳定性经过了时间的…

Linux环境thinkphp配置以及数据源驱动修改

项目中需要用到thinkphp,以下简称tp。linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5.28 thinkphp版:3.2.31.安装LNMP Linux环境Nginx安装与调试以及PHP安装2.项目框架 tp源码下载http://www.thinkphp…

《Linux内核设计与实现》读书笔记 第三章 进程管理

第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种。我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在。 3.1进程 概念: 进程:处于执行期的程序。但不仅局限于程序,还包含其他资…

java持续集成soapui_集成testNG到JavaAPI测试-执行多条用例

*****************************************************************在这门课里你将学到Web Services(SOAP WebService和REST API)的手动测试及自动化测试,熟练使用Groovy脚本自动化测试WebService。这门课程设计的是从零基础入门开始学,然后以循序渐进…

python-os

os.listdir(path):path-->路径 返回类型为listos.getcwd() 获取当前工作目录os.chdir() 切换工作目录os.mkdir() 新建目录os.path.exists()os.path.isdir() os.path.join() 拼接字符串路径os.path.exists(rpath) 判断路径是否存在 r原始路径os.path.isdir() 判断是否是文件夹…

NetBeans配置Xdebug 远程调试PHP

很多PHP程序员使用echo,dump等比较原始的方法调试,这是非常落后的。几年前本人写过一篇: NetBeans配置Xdebug 由于那篇文档还需要引用本人写的其他文档,感觉有些分散,所以这里重新写一篇完整的。linux版本:…

java自定义上下文对象_Java框架_Spring应用上下文对象加载配置

我们都知道IOC是spring框架的核心,主要作用是控制反转,把我们需要的对象从容器中提供给我们,但是IOC是如何加载我们所需要的对象的?Spring容器是IOC容器的一种,它通过ApplicationContext接口将我们所需要的配置文件进行…

ThreadLocal源码分析

ThreadLocal的作用 Java对象是线程间共享的,但有时我们需要一些线程间隔离的对象,该对象只能由同一个线程读写,对其他线程不可见。ThreadLocal正式提供了这样的机制,详细使用方式请参考Java ThreadLocal。 ThreadLocal实现原理 自…

远程连接windows出现身份验证错误,提示由于CredSSP加密Oracle修正解决方案

本机操作系统(OS版本:10.0.17134) 远程计算机操作系统(OS版本:6.3.9600) 远程连接的时候报错“出现身份验证错误,要求的函数不受支持。远程计算机:xxx 这可能是由于CredSSP加密Oracle修正,若要了解详细信息...” 原因是系统更新安装了补丁&am…

MediaWiki安装

MediaWiki可以方便的让你搭建自己的wiki,公司内部使用非常方便官网: https://www.mediawiki.org/wiki/MediaWiki安装MediaWiki的必要环境 PHPMysql 下载最新版解压即可 # tar -xzvf mediawiki-1.25.2.tar.gz # mv mediawiki-1.25.2 wiki 输入首页引导一…

sql的四种连接 用mysql的语句写_170221、浅谈mysql的SQL的四种连接

例子:-------------------------------------------------a表 id name b表 id job parent_id1 张3 1 23 12 李四 2 34 23 王武 3 34 4a.id同parent_id 存在关…

MySQL冷备份的跨操作系统还原

数据来源:linux平台mysql版本为5.7 数据去向:windows平台mysql版本为5.7 操作步骤: 第一步:关闭mysql服务 service mysqld stop 第二步:归档linux平台下mysql的数据目录 tar -czvf data.tar.gz /usr/local/mysql/data …

Java 社区领袖联合发文:别慌,Java 仍然是免费的!

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> 在去年的 Java One 上,Mark Cavage 当时宣布 Oracle 将逐步开源 Oracle JDK 的专有功能(商业特性)。Oracle Java 平台产品管理高级总监 Donald …

Squid安装

最新版Squid安装 http://www.squid-cache.org/Versions/v3/3.5/# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.7.tar.gz# tar zxvf squid-3.5.7.tar.gz# cd squid-3.5.7# ./configure --prefix/usr/local/squid# make && make install# chmod -R 777 /…

Java内部类手机专卖店_JAVA——内部类的那些事儿

obj3.func();//3.2 访问静态内部类的静态方法(通过类名访问)Outer.StaInner.staFunc();//4 局部内部类访问局部变量Outer obj4 new Outer();obj4.local();//5 匿名内部类Outer obj5 new Outer();obj5.anonymous();//6 匿名内部类作为参数asPara(new AbstractClass() {public …

Linux下Postfix的配置和使用

Postfix为何物,详见:http://zh.wikipedia.org/wiki/Postfix 0.关于Postfix postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度。性能和稳定性上都更胜一筹。如今眼下许多的主流邮件服务事实上都在採用postfix. 当我们须要一个轻量级的…