图书前言

Visual C#(C Sharp)是Microsoft公司随同Visual Studio .NET一起推出的相对较新的一种语言,其用意是既提供Visual Basic的易用性,又提供Java和C++语言的灵活性及强大功能。C#的语法与Java和C++类似,但在创建图形用户界面及创建事件驱动型应用程序方面的简易性可与Visual Basic相媲美。

C#是完全面向对象的语言,它兼容许多其他使用.NET Framework的语言。本书通篇都将体现面向对象的概念以及C#语言的语法和术语。

C#的设计旨在使编程人员既能开发在Windows下面以及在Web浏览器中运行的应用程序,而又不涉及通常与编程相联系的复杂性。通过非常少的努力,编程人员就能设计出包括诸如按钮、复选框、单选按钮、文本框以及列表框等标准元素的屏幕。这些对象的行为均符合预期,可产生“标准的”Windows或Web用户界面。

关于本书

本书计划用于初级的编程课程,并假设学生预先没有任何计算机编程知识。后面几章还适合供那些为提高技能而学习新语言的专业编程人员使用。

本书假定学生熟悉Windows操作系统,而且可以使用某种Internet浏览器应用程序。

编写方法

本书包括编程、问题解决和编程逻辑的基本概念,还包括面向对象的事件驱动语言的设计技术。

各章主题的给出顺序使编程人员既能学习如何处理可视界面,又能获得重要的编程技能,比如创建包含对象、决策、循环和数据管理的项目。

编写对用户而言易于理解和使用的应用程序被赋予较高优先级。本书通篇会为学生提供界面设计的准则。

本书基本上遵循Bradley和Millspaugh合著的Visual Basic一书的顺序。面向对象编程(Object-Oriented Programming,OOP)的概念将在第1章介绍,之后每一章都会以一致的方式使用这些概念。

教师可得到所有章内项目的源代码。

本书特点

面向对象的概念  本书自始至终会给出这些概念,以使学生更好地理解如何编写应用程序。

界面设计准则  给出这些准则的目的,是使学生更好地理解如何设计屏幕。

反馈问题  反馈问题部分给予学生反思当前主题的时间,使其评估自己对细节的       理解。

提示  边缘部分的提示帮助学生避免程序中潜在的故障点,并鼓励他们养成良好的编程惯例。

实用编程示例  这些完整的编程练习指导学生通过规划、编写和执行C#程序的      过程。

编程练习  编程练习部分测试学生对本章所含编程技能的理解。

案例分析  案例分析部分提供可以在整个课程讲授期间使用的连续的主题练习,可提供许多机会来扩充前面的项目。

学习目标  这些目标告诉学生本章将包括哪些主题,以及在学完本章之后他们将具备哪些能力。

本版的修改

这次对C#语言的更新包括一些重大修改,比如大为简化的数据库编程和Web开发。本书包括.NET的许多新功能,比如智能标签、WebBrowser控件、MenuStrip组件、ToolStrip组件以及“关于框”模板。

输出显示在只读文本框中,这使得使用TextBox控件Clear方法的清除过程更容易。

所有菜单均使用新的MenuStrip组件。虽然老式的菜单仍然可用,但将来的产品版本注定要将其删除,目前只是为了向后兼容。新的控件提供了更大的灵活性;除按钮之外,它还包括下拉框。

通过使用拖放技术,学生可以创建绝对不含任何编程代码的数据库应用程序。尤为适宜的是,这样的应用程序可以使用新的DataGridView,或者将细节包括在带导航栏的文本框中。书中的示例还示范了如何使用组合框而非导航栏来浏览记录。

我们重新组织并扩充了书中的部分小节。第6章现在包括了多窗体应用程序,还包括了用于创建About窗体的模板。该章还示范了如何添加程序启动画面。创建类和使用继承被移到了第12章。在创建多个类之前,学生有机会学习到更多技术,比如活动的多个窗体。

Visual Studio 2005包括新的Web服务器,可避免使用IIS进行Web开发的复杂性。学生可以在自己的存储设备(软盘、Zip盘、闪存、硬盘)上创建Web应用程序。这些项目可以容易地被复制到其他机器上运行。

拖放技术现在被放到讲述图形的第13章中。学生将学习这种熟悉的操作的开发技术,并学习在使用SoundPlayer类的应用程序中播放声音。

第14章包括新的WebBrowser控件,该控件使在Windows窗体上加入Web内容变得容易。包括的其他新功能是ToolStrip、StatusStrip和代码片断。

全书的内容讲解、练习步骤、屏幕截图和附录都已更新到C# 2005。屏幕截图基于使用Visual Studio专业版的Windows XP。

本书内容

每章都以可识别的学习目标和简要的综述开始。书中自始至终都有许多代码示例以及带有规划和编程指导的实用项目。引发思考的反馈问题给予学生时间来反思当前主题,并评估自己对细节的理解。章尾内容包括本章小结、复习题、编程练习和4个案例分析。案例分析提供可以在整个课程讲授期间使用的连续的主题练习。

第1章“编程及Visual C# 2005简介”,介绍了Microsoft的Visual Studio集成开发环境(Integrated Development Environment,IDE)。该单一环境可供多种语言使用。本章所提供的逐步完成的程序使学生可以非常迅速地(比大多数教科书都快)投入编程当中。本章介绍了对象、属性、方法和事件等OOP概念,还介绍了调试和使用“帮助”系统的内容。

第2章“用户界面设计”,阐释了导致良好的程序设计的技术——包括如何使界面对用户而言简单易用,还阐释了设计可维护程序的准则。本章介绍了若干控件,包括文本框、掩码文本框、丰富文本框、编组框、复选框、单选按钮和图片框。

第3章“变量、常量和计算”,介绍了使用数据和声明数据类型的概念。学生将学习遵照标准来指出变量和常量的数据类型,并学习使用适当的作用域。

错误处理使用try/catch/finally结构,该结构在本章连同计算一起介绍。学生将学习使用MessageBox类显示错误消息,还将了解重载构造函数的OOP概念。

第4章“决策和条件”,介绍了如何基于由关系和逻辑运算符构成的条件,来采取备选的动作。本章使用if语句来验证用户输入。多重决策是使用嵌套if语句和case结构(switch语句)来处理的。

本章还讲述了IDE的调试功能,包括一个单步执行程序语句并在执行期间检查中间值的逐步完成的练习。

第5章“菜单、通用对话框和方法”,讲述了编写和调用普通方法的概念。学生将学习如何在项目中添加菜单和上下文菜单,如何显示通用对话框,以及如何使用用户提供的输入。

第6章“多窗体项目”,给项目添加了启动画面窗体和About窗体。汇总数据在单独的窗体上给出。

第7章“列表、循环和打印”,向项目中加入了列表框和组合框,提供了讨论循环过程的机会,并将打印出信息清单。打印是在.NET中使用图形对象和回叫事件完成的。打印控件还包括Print Preview,该控件允许学生和教师查看输出而不实际打印。

第8章“数组”,介绍了在逻辑上从第7章所讨论的列表得出的数组。学生将学习一维和多维数组、表查找技术、结构以及结构数组。

第9章“利用Web Forms编程”,介绍了使用Web Forms编程的概念;Web Forms是用来创建在浏览器应用程序中执行的Web页面的。学生将学习设计和开发简单的Web应用程序。

第10章“访问数据库文件”,介绍了ADO.NET——这是Microsoft访问数据库中数据的最新技术。本章示范了如何创建绑定源、表适配器和数据集。本章的程序既要访问Windows Forms中的数据,又要访问Web Forms中的数据。学生将学习如何把数据表绑定到数据网格,以及如何把单独的数据字段绑定到诸如标签和文本框这样的控件。

第11章“在文件中保存数据”,介绍了数据文件的处理技术。学生将学习使用流来保存和读取少量的数据。StreamWriter和StreamReader对象用来存储和再加载组合框的内容。

第12章“OOP:创建面向对象的程序”,解释了更多面向对象编程的理论。虽然我们从第1章以来一直在使用OOP的概念,但在本章学生才会学习OOP的术语和应用。为学习可视对象(窗体)和扩充现有类的目的,本章还讨论了继承。围绕某个初步的类,本章给出的示例都足够简单。

第13章“图形、动画、声音和拖放”,讨论了GDI+的类和方法。本章包括绘制形状和线条的图形对象、钢笔和画笔。动画是组合使用Timer控件和SetBounds方法(用于移动控件)完成的。学生将学习使用SoundPlayer类来播放声音。拖放事件用来把文本框的内容传递到列表框。

第14章“C#中的其他主题”,介绍了一些高级的编程主题。最后这一章讨论了如何使用Error Provider和控件的Validating事件来验证用户输入。学生将学习使用多文档界面(Multiple Document Interface,MDI)创建应用程序,使用新的ToolStrip和StatusStrip控件创建工具栏和状态栏,以及使用WebBrowser控件给Windows窗体添加Web内容。本章还介绍了新的代码片断功能。

附录提供了重要的附加资料。“附录A”给出了所有反馈问题的答案。“附录B”包含用于日期、数学和字符串处理的方法。在OOP风格的程序中,动作是使用Math类和String类的方法完成的。“附录C”给出了掌握Visual Studio环境的技巧和快捷方式。“附录D”讨论了Windows和Web编程的安全问题。

致谢

在设计和制作本书的过程中,有许多人都付出了非常艰苦的工作,其中包括Janna Martin、Linda Schreiber、Kristen Bradley、Alaina Grayson,还有很多人。

由于其严格的技术审查、建设性批评和很多宝贵的建议,我们非常感激Robert Price和Theresa Berry。另外最重要的是,我们要感谢Dennis、Richard、Tricia、Scott、Eric和Kenna,他们长期通过繁忙的电话线路给予我们支持和理解。

我们要感谢本书的审阅者,他们提出了很多有益的建议:Sue Fitzgerald,哲学博士,Metropolitan州立大学;Terry Foty,Portland社区学院;Stephen Gilbert,Orange Coast学院;Gregory Kuhlmann,就职于Austin的Texas大学;Sebnem Onsay,Oakland大学;Von Roderick Plessner,西北州立社区学院;Martin Schray,DePaul大学;Gene Snare,西南Illinois学院;以及Christopher C. Whitehead,Columbus州立大学。

作者的话

我们编写C#的过程是愉快的,希望您在阅读本书时也能拥有这种感觉,祝愿您能享受到学习或讲授这种杰出编程语言所带来的乐趣。

采用该书作教材的教师可向McGraw-Hill公司北京代表处联系索取教学课件资料,传真:(010)6279 0292,电子邮件:instructorchina@mcgraw-hill.com。

Julia Case Bradley

Anita C. Millspaugh