C#从入门到精通(第2版)
上QQ阅读APP看书,第一时间看更新

前言

“从入门到精通”系列是专为初学者量身打造的一套编程学习用书,由知名计算机图书策划机构“龙马高新教育”精心策划而成。

本书主要面向C#初学者和爱好者,旨在帮助读者掌握C#基础知识、了解开发技巧并积累一定的项目实战经验。当读者系统地学习完本书内容之后,就可以骄傲地宣布—“我是一名真正的C#程序员了!”。

为什么要写这样一本书

荀子曰:不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。

实践对于学习的重要性由此可见一斑。纵观当前编程图书市场,理论知识与实践经验的脱节,是很多C#图书的写照。为了杜绝这一现象,本书立足于实战,从项目开发的实际需求入手,将理论知识与实际应用相结合。目标就是让初学者能够快速成长为初级程序员,并拥有一定的项目开发经验,从而在职场中拥有一个高起点。

C#的最佳学习路线

本书总结了作者多年的教学实践经验,为读者设计了最佳的学习路线。

本书特色

▲ 零基础、入门级的讲解

无论读者是否从事计算机相关行业,是否接触过C#,是否使用C#开发过项目,都能从本书中找到最佳起点。

▲ 超多、实用、专业的范例和项目

本书结合实际工作中的范例,逐一讲解C#的各种知识和技术。最后,还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松拥有项目经验。

▲ 随时检测自己的学习成果

每章首页罗列了“本章要点”,以便读者明确学习方向。每章最后的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时自我检测,巩固所学知识。

▲ 细致入微、贴心提示

本书在讲解过程中使用了“提示”、“注意”、 “技巧”等小栏目,帮助读者在学习过程中更清楚地理解基本概念、掌握相关操作,并轻松获取实战技巧。

超值光盘

▲ 17小时全程同步教学录像

涵盖本书所有知识点,详细讲解每个范例及项目的开发过程及关键点。帮助读者更轻松地掌握书中所有的C#程序设计知识。

▲ 超多王牌资源大放送

赠送大量王牌资源,包括38小时C#项目实战教学录像、799页C#类库查询手册、52页C#控件查询手册、10套超值完整源代码、56个C#常见面试题及解析电子书、123个C#常见错误及解决方案电子书、50个C#高效编程技巧、C#程序员职业规划、C#程序员面试技巧等。

读者对象

► 没有任何C#基础的初学者

► 有一定的C#基础,想精通C#的人员

► 有一定的C#基础,缺乏C#实战经验的人员

► 大专院校及培训学校的老师和学生

光盘使用说明

01. 光盘运行后首先播放片头动画,之后进入光盘的主界面。其中包括【课堂再现】、【C#项目实战教学录像】两个学习通道,和【范例源码】、【实战练习答案】、【赠送资源】、【帮助文件】、【退出光盘】五个功能按钮。

02. 单击【课堂再现】按钮,进入多媒体同步教学录像界面。在左侧的章号按钮上单击鼠标左键,在弹出的快捷菜单上单击要播放的节名,即可开始播放相应的教学录像。

03. 单击【C#项目实战教学录像】按钮,可以查看相关视频文件,在打开的文件夹中包含了教学录像及其实战源码,在【同步视频】文件夹下进入子文件夹,双击要播放的视频,即可使用电脑中的播放器进行播放。

04. 单击【范例源码】按钮,可打开本书范例源码文件夹。

05. 单击【实战练习答案】按钮,可在打开的文件夹中看到实战练习答案。

06. 单击【赠送资源】按钮可以查看随本书赠送的资源。

07. 单击【帮助文件】按钮,可以打开“光盘使用说明.pdf”文档,该说明文档详细介绍了光盘在电脑上的运行环境及运行方法等。

08. 单击【退出光盘】按钮,即可退出本光盘系统。网站支持

更多学习资料,请访问www.51pcbook.cn。

创作团队

本书由龙马高新教育策划,国家863中部软件孵化器组织编写,邹东尧任主编,朱会东、王治国任副主编。参加编写的人员分工如下:第6~8章由张启坤编写,第9章和第10章由吴怀广编写,第11~15章由王治国编写,第16~20章由朱会东编写,第21~24章由黄燕编写,第0~5章及第25~27章由邹东尧、李晨编写。参加资料整理的人员有韩腾飞、薛枫、孔万里、李震、赵源源、乔娜、周奎奎、王果、陈小杰、左琨、邓艳丽、崔姝怡、侯蕾、左花苹、刘锦源、普宁、王常吉、师鸣若、钟宏伟、陈川、刘子威、徐永俊、朱涛和张允等。

在编写过程中,我们竭尽所能地将最准确的C#理解和感悟呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若您在学习过程中遇到困难或疑问,或有任何建议,可发送电子邮件至zhangyi@ptpress.com.cn。

编者

第0章 C#学习指南

要想真正掌握C#,就必须知道这门语言的来源和历史。本章是学习C#语言的第0章,是读者掌握C#这门语言的启蒙课。通过对本章的学习,读者将初步了解C#语言的来源、C#的基础思想、C#的技术体系及C#应用领域和前景,除此之外,还可以通过C#学习经验之谈和C#学习路线图进一步了解C#。

本章要点(已掌握的在方框中打钩)

□ C# 的来源

□ C#的基本思想

□ C#的技术体系

□ C#应用领域和前景

□ C#学习经验谈

□ C#学习路线图

0.1 C# 的来源

C#编程语言是微软公司推出的基于.NET框架的、面向对象的高级编程语言。C#与C、C++、Java有着密切的关系,是.NET框架中最常用的编程语言。

0.1.1 C#语言的产生背景

1995年,SUN公司推出面向对象的开发语言—Java之后,由于它的跨平台、跨语言特性,使得越来越多的基于C/C++的开发人员转向了Java。很快,微软公司也推出了基于Java语言的编译器Visual J++,并在短时间内升级到了6.0版本。

Visual J++虽然有强大的开发功能,但主要应用在Windows平台的系统开发中,因此SUN公司认为Visual J++违反了Java的许可协议,即违反了Java平台的中立性,这使得微软公司处于被动局面。为了改变这一局面,微软公司提出了进军互联网的庞大计划—.NET计划,以及该计划中的开发语言—C#。

1998年,Anders Hejlsberg和他的微软开发团队开始设计C#语言(C#英文读做C Sharp)。

0.1.2 C#语言的发展过程

C#语言的发展主要经历了以下阶段。

2000年微软公司发布了C#语言的第一个版本,它是一种全新且简单、安全、完全面向对象的程序设计语言,是专门为.NET的应用而开发的语言,它吸收了C++、Visual Basic、Delphi、Java等语言的优点,C#基本上继承了C语言的语法风格,又从C++那里继承了面向对象的特征。同时,C#和Java也极其相似。

2003年,微软公司发布了C# 1.2,Visual Studio.NET 2003使用的是C# 1.2。

2005年,微软公司发布了C# 2.0,Visual Studio.NET 2005使用的是C# 2.0。

2007年,微软公司发布了C# 3.0,Visual Studio.NET 2008使用的是C# 3.0。

2010年,微软公司发布了C# 4.0,Visual Studio.NET 2010使用的是C# 4.0。

2013年,微软公司发布了C# 4.5,Visual Studio.NET 2013使用的是C# 4.5。

C# 2.0在C# 1.2的基础上,增加了泛型、匿名方法、迭代、部分类等。C# 3.0在C# 2.0的基础上,增加了扩展方法、Lambda表达式、查询表达式、自动实现的属性、匿名变量等。C# 4.0在C# 3.0的基础上,增加了dynamic关键字、默认参数、可选参数等。C# 5.0在C# 4.0的基础上,增加了带参数的泛型构造函数、支持null类型运算、case支持表达式、扩展属性和绑定运算符等。

0.2 C#的基本思想

C#的基本思想即面向对象。面向对象的编程设计(Object Oriented Programming,OOP)旨在将实际世界中存在的事物或概念通过抽象的方法模拟到计算机程序中,尽量使用人的自然思维,着重强调人的正常思维方式和原则。

面向对象的编程设计是将数据及处理这些数据的操作都封装(Encapsulation)到一个称为类(Class)的数据结构中。面向对象的编程设计具有封装、继承和多态性等特点。封装用于隐藏调用者不需要了解的信息;继承则简化了类的设计;多态性是指相同对象收到相同信息,或不同对象收到相同信息时,产生不同的行为方式。

0.3 C#的技术体系

C#是一种全新的、面向对象的编程语言。它依附于.NET Framework架构,它高效的运行效率、简单易于理解的语法,加之强大的编译器支持,使得程序的开发变得异常迅速。它的技术体系主要有以下几个方面。

(1) 彻底的面向对象设计,C#具有面向对象语言所拥有的一切特性,即封装、继承和多态。C#与Web应用紧密地结合,支持绝大多数的Web标准,例如,HTML、XML、SOAP等。

(2) Windows Form技术,用来开发Windows桌面程序,数据提供程序管理提供易于连接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2及Oracle等,通过强大的控件库可以快速开发出桌面应用程序。

(3) WPF技术,微软的新一代图形系统,运行在.NET Framework 3.0及以上版本,为用户界面、2D/3D图形、文档和媒体提供了新的操作方法。

(4) WebForm技术,是Windows使用C#语言来开发Web应用程序的工具,它封装了大量的服务器控件,让开发Web变得简单。

(5) MVC技术,是ASP.NET编程模式的一种,使用模型—视图—控制器设计创建Web应用程序,这种分层的设计使程序员能够在复杂性高的程序中各司其职,专注于自己的方面。

0.4 C#应用领域和前景

C#语言出身于微软公司,C#主要用来构建在.NET Framework上运行的各种安全、可靠的应用程序。它的应用领域十分广泛。

1. Web应用程序

Web应用包括ASP.NET应用程序、Windows窗体应用程序。

2.数据库应用程序开发

C#中的ADO.NET技术适合进行数据库应用程序的开发。数据库应用程序可理解为业务管理软件,具体应用如图书管理系统、人事管理系统等。

3.桌面应用程序

桌面应用包括控制台应用程序、Windows窗体应用程序等。

4.插件技术

插件技术编程在计算机软件中广泛运用,它提高了软件的扩展性,延长了软件的生命周期,在一定程度上是对软件功能的扩充。

5.移动设备应用程序

移动设备应用程序即嵌入式开发领域,主要是面向Windows CE等微软的产品。

6.游戏软件开发

C#语言通过与XNA游戏开发框架相结合,可以使开发出的游戏效果更加绚丽。

上面介绍了几个主要的C#应用领域,实际上C#语言几乎可以应用到程序开发的任何领域。那么C#的前景怎么样?根据2014年9月Tiobe编程语言排行榜可以看出,C#语言继续呈上升趋势,同比上升一位,排在了所有语言的第五位,发展趋势良好。下图所示为2014年9月Tiobe编程语言排行榜及C#语言发展趋势。

0.5 C#学习经验谈

C#语言自C/C++演变而来,它的语法和Java语言一样,更加简洁。C#语言是完全按照面向对象的思想来设计的,且与Web应用和Windows应用紧密结合。那么怎样学习程序设计,学好C#语言?现将笔者的学习经验与读者朋友分享。

1.培养兴趣,明确学习目标

“兴趣是最好的老师。”如果把编写程序看做一种爱好,就不会觉得枯燥无味。在确定学习编程之前,需明确自己的学习目标,制定可行的计划,切忌三天打鱼两天晒网。

2.打好基础,循序渐进

“水之积也不厚,则其负大舟也无力。”在学习C#编程的路上要脚踏实地,一步一个脚印。先学好基础知识,再循序渐进地学习一些高级的特性。

3.多实践,多交流

“读十篇不如做一篇。”程序设计必须要自己动手动脑上机调试程序,切忌纸上谈兵。在初学编程时,一定会遇到许多问题。不要慌张,要多交流、多请教,吸取别人的长处,丰富自己的编程经验,提高编程水平。要注意培养自己的逻辑思维能力,掌握编程思想,当然,做到这一点,需要不断实践、思考、交流和总结。

4.善于利用资源

“泰山不让土壤,故能成其大;河海不择细流,故能就其深。”在学习C#的过程中,要充分利用网络资源,比如大型搜索引擎网站(百度、谷歌等)、知名的论坛、博客园等。多读好书,多参考程序代码,并从中分析,归纳出好的方法、经验为己所用。

5.养成良好的编程习惯

“习惯决定命运,细节决定成败。”良好的编程习惯对于编程能力的提高也是非常重要的。在编程时要有良好的风格,源代码的逻辑简明清晰、易读易懂是好程序的重要标准。

6.坚定目标,树立信心

“成功的奥秘在于目标的坚定。”在学习编程过程中,要坚持坚持再坚持!

0.6 C#学习路线图

第一步为入门阶段,主要学习C#基础语法,如数据类型、变量与常量、字符串与表达式、数组和集合、程序的基本结构、异常处理与程序调试、常用数据类型的用法,对C#面向对象编程有所认识的同时还要了解更高级的事件和委托。入门时,可编写一些控制台程序来巩固这些基础。

第二步为提高阶段,主要包括Windows应用程序高级控件、C#面向对象高级技术、ADO.NET数据访问技术、报表与打印、文件及数据流技术、线程的使用、网络编程技术,初步了解项目部署等。

第三步,有了第一步和第二步的基础,进行一些项目实战练习。在练习中查漏补缺,总结经验,从而掌握C#,并充分发挥C#的语言优势。