前 言
首先,感谢您翻阅这本书。
本书的背景
在 .NET 被正式发布之前,NGWS这个术语一直被用于微软的某些计划,这些计划旨在创建一个下一代视窗服务的基于因特网的平台(Internet-based platform of Next Generation Windows Services)。
史蒂夫·鲍尔默于2000年指出:“交付一个基于因特网的下一代视窗服务平台是我们公司的重中之重。我们在此谈论的突破包括对编程模型、用户界面、应用程序整合模型、文件系统、新的XML Schema 等的改变。”
作为微软最重要的开发者工具集,新版Visual Studio 2017旨在帮助开发人员围绕微软核心产品和服务打造高效完美的解决方案。当前Visual Studio 2017已经扩展到Mac平台,这意味着开发者可以在Mac上使用C#、F#、.NET Core、ASP.NET Core、Xamarin和Unity来搭建应用程序。而C#正是.NET平台主流的开发语言,也是一个现代的、通用的、面向对象的编程语言。因此,它的应用范围十分广泛。
本书由作者将过去的教学经验和实验指导经验整理而成,主要针对大学本科或专科相关专业学生的程序设计学习,亦可供相关的开发人员及爱好者入门学习使用。
本书的特色
编程属于利用抽象概念来思维,通常可以通过简单的例程形象地进行学习。本书采用“案例描述→知识链接→案例分析与实现→拓展实训→习题”这样的编写体例。通过精心选取案例,一改传统案例的枯燥性,挑选更符合应用,而且生动有趣的案例帮助读者提高学习效率。在每个单元中,针对初学者容易忽略、出错,或难于理解的知识点及代码块,采用注意、说明等特别形式重点提醒读者。
本书的组织
在学习面向对象技术的过程中,既需要学习编程的抽象概念,又需要培养编程的实际技能,二者都是非常重要的。学习理论知识时,要防止沉迷于语言细节。如果过多地关注细节,就会分散注意力,导致对某些概念“知其然,而不知其所以然。”
本书面向爱好 C#的零基础读者,全面讲解C#的基础知识。在实例的选取上注重实用性,内容详尽,难易适中,重点突出,降低了读者学习的难度。
本书涵盖四大专题,包括C#语言基础、Windows编程、数据访问、网络编程,共18个单元。
第一篇 C#语言基础
包括1~12单元。
单元1从C#的基础知识开始进行简要的介绍,其中包括.NET Framework、Common Language Runtime以及C#的特点等。该单元的目的,是让读者快速了解C#的基本概念,让读者对C#有一个基本的认识。
单元2全面介绍C#中的数据类型,以及数据类型间的转换。
程序中变量的值不断变化,最终产生人们想要的处理结果,而变量值的变化是通过运算符和表达式来实现的。在单元3中,详细阐述表达式中每种运算符的功能、优先级、结合性及在使用中的注意事项。
在实际的任务中,大多数问题的求解步骤(也就是通常所说的算法)往往都会有若干分支选项或重复执行的情况。所以单元4讲解选择结构程序设计,单元5讲解循环结构的程序设计。
随着程序代码的增多,任何软件都难免会出错,在软件开发的过程中,进行错误捕捉显得尤为重要,因为有的错误会导致软件功能失常,有的错误甚至会造成破坏性损失。在单元6中,主要讲解异常处理方法和调试方法。
有时需要存储多个相同类型的值,这就要用到单元7中介绍的数组和集合的知识。
C#是面向对象的语言,所以在单元8~12中,全面介绍面向对象的知识,包括类和对象的概念及其使用、类的属性和方法、类的继承与多态性(虚方法和重写、抽象类、接口)、委托与事件、泛型程序设计。
第二篇 Windows编程
单元13是Windows编程基础,单元14是Windows 编程进阶。这部分结合一些Windows应用程序实例,介绍最常用控件的属性、方法、事件及应用,让读者对Windows应用程序的设计有进一步的了解和认识。
第三篇 数据访问
主要分为ADO.NET数据访问和磁盘文件的读写。
ADO.NET是一组用于和数据源进行交互的面向对象类库,因此,要掌握信息管理系统软件的开发,就必须掌握ADO.NET数据库的编程。单元15~16以简单通俗的例子,阐述C#语言中进行数据库编程的几个基本核心对象。
文件是系统的重要组成部分。在物联网系统中,如何将数据永久保存为文件?如何读取已有的数据文件?单元17介绍涉及到的文件读写技术。
第四篇 网络编程
计算机技术发展到现在,从应用服务器到PC机,再到手持设备,几乎都要通过网络连接起来。现在的应用软件,大都需要通过网络来进行通信。所以在单元18中,简单地引入C#在网络编程中的应用,而更多的网络编程技术将在其他教材和课程里深入学习。感兴趣的读者也可以自学。
本书所有案例均在Visual Studio 2017环境下编译通过。
由于书籍篇幅有限,通常不能将代码完全列出。强烈建议读者多编写代码实践,可以运行、调试、修改、补充各个案例与练习。编程技能的训练目的是掌握足够多的语言细节以便完成有意义的程序。而真实软件开发项目中的代码,则需要更为周全的考虑,例如统一的编程风格、完善的注释和文档、各种修饰符的选择、方法的参数检查、完整的异常处理和防御编程、有弹性的类层次设计等,所有这些,都需要在编程练习中逐步学会。
本书由向燕飞担任主编,魏菊霞、彭之军担任副主编。具体分工是:第1~14单元由向燕飞编写,15~16单元由魏菊霞编写,17~18单元由彭之军编写。在出版过程中,我们得到了所在学校领导、同事以及出版社编辑的帮助和指教,特别是奚建清教授、曹琳教授对本书的编写提出了许多宝贵意见。谨向他们表示衷心感谢。
由于作者水平有限,书中的错误和不妥之处在所难免,希望读者批评指正。有关本书的意见反馈和咨询,读者可在清华大学出版社网站的相关版块中与作者进行交流。
向燕飞