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