Visual C#(C Sharp)是微软公司随同Visual Studio .NET一起推出的一种新语言,其用意是既提供Visual Basic的易用性,又提供Java和C++语言的灵活性及强大功能。C#的语法与Java和C++类似,但在创建图形用户界面及事件驱动型应用程序方面的简易性可与Visual Basic相媲美。
C#是完全面向对象的语言,它兼容许多其他使用.NET Framework的语言。本书通篇都将体现面向对象的概念以及C#语言的语法和术语。
C#的设计旨在使程序员既能开发在Windows中以及在Web浏览器中运行的应用程序,而又不涉及通常与编程相联系的复杂性。通过非常少的努力,程序员就能设计出包括诸如按钮、复选框、单选按钮、文本框以及列表框等标准元素的屏幕。这些对象的行为均符合预期,可产生“标准的”Windows或Web用户界面。
本书定位
本书针对初级编程课程的教学,并假设学生预先没有任何计算机编程知识。后面几章也适合供那些为提高技能而学习新语言的专业程序员使用。
本书假定学生熟悉Windows操作系统,而且可以使用某种Internet浏览器应用程序。
本书编写原则
本书包括程序设计、问题解决和编程逻辑的基本概念,还包括面向对象的事件驱动程序设计技术。
书中各章主题的介绍顺序使程序员既能学习如何处理可视界面,又能获得重要的编程技能,比如创建包含对象、决策、循环和数据管理的工程。
编写对用户而言易于理解和使用的应用程序被赋予较高优先级。本书通篇会为学生提供界面设计的准则。
面向对象编程(Object-Oriented Programming,OOP)的概念将在第1章介绍,之后每一章都会以一致的方式使用这些概念。
教师可得到各章工程的全部源代码。
本书特点
* 面向对象的概念 本书自始至终会给出这些概念,以使学生更好地理解如何编写应用程序。
* 界面设计准则 给出这些准则的目的,是使学生更好地理解如何设计屏幕。
* 习题 习题部分给予学生反思当前主题的时间,使其评估自己对细节的理解。
* 提示 提示帮助学生避免程序中潜在的故障点,并鼓励他们养成良好的编程 习惯。
* 实用编程示例 这些完整的编程练习指导学生完成规划、编写和执行C#程序的 过程。
* 编程练习 编程练习部分测试学生对本章所含编程技能的理解。
* 案例分析 案例分析部分提供可以在整个课程讲授期间使用的连续的主题练习,可提供许多机会来扩充前面的工程。
* 学习目标 这些目标告诉学生本章将包括哪些主题,以及在学完本章之后他们将具备哪些能力。
* 在线学习中心 访问Visual C# 2008 Web网站www.mhhe.com/C#2008/可以获得教师和学生资源。
本版的修改
本书基于Visual Studio 2008专业版,Visual Studio 2008新增的LINQ(Language- Integrated Queries,集成语言查询)可以对各种数据源执行更加一致的查询。新增的WPF(Windows Presentation Foundation,Windows表示基础)为界面设计带来了全新的技术。新增的AJAX提供了更加快速的Web页面回调速度。
微软公司对于集成开发环境(IDE)也做了很多增强。编辑器具有更加丰富的智能提示功能。第9章将会介绍用来在Web应用程序中创建、管理和应用样式的新的工具 窗口。
新增的PrintForm组件使得在课堂环境打印窗体变得非常简单和方便。PrintForm组件属于名为Visual Basic Power Packs的微软下载组件,可以添加到IDE供C#程序使用。第2章将会介绍如何使用PrintForm输出到打印机和打印预览窗口。第7章将会介绍标准打印任务。
第10章介绍LINQ,第14章介绍XML的小节还会涉及LINQ。
第11章介绍了一种简化方法,可以写入少量数据而不必打开文件。
第13章介绍拖放图像的操作,读者将会学习类似操作的开发技术。
第14章介绍XML数据文件,并简要介绍可如何使用WPF编程。
本书的文字叙述、练习步骤、屏幕截图和附录都使用Visual Studio 2008更新了,屏幕截图基于Windows Vista。
本书内容
每章都以易识别的学习目标和简要的综述开始。书中自始至终都有许多代码示例以及带有规划和编程指导的实用工程。引发思考的习题给予学生时间来反思当前主题,并评估自己对细节的理解。章尾内容包括复习题、编程练习和4个案例分析。案例分析提供可以在整个课程讲授期间使用的连续的主题练习。
第1章“编程及Visual C# 2008简介”,介绍了Microsoft公司的Visual Studio集成开发环境(Integrated Development Environment,IDE)。该单一环境可供多种语言使用。本章所提供的逐步完成的程序使学生可以非常迅速地(比大多数教科书都快)投入编程当中。本章介绍了对象、属性、方法和事件等OOP概念,还介绍了调试和使用“帮助”系统的内容。
第2章“用户界面设计”,阐释了良好的程序设计技术——包括如何使界面对用户而言简单易用,还阐释了设计可维护程序的准则。本章介绍了若干控件,包括文本框、掩码文本框、富文本框、编组框、复选框、单选按钮和图片框。新增的一节内容介绍了Power Pack中的一些控件,包括PrintForm和Shape和Line控件。
第3章“变量、常量和计算”,介绍了使用数据和声明数据类型的概念。学生将学习如何遵照标准声明变量和常量的数据类型,并学习使用适当的作用域。出错处理使用try/catch/finally结构,该结构在本章连同计算一起介绍。学生将学习使用MessageBox类显示出错消息,还将了解重载构造函数的OOP概念。
第4章“决策和条件”,介绍了如何基于由关系和逻辑运算符构成的条件来采取备选的动作。本章使用if语句验证用户输入。多重决策是使用嵌套if语句和case结构(switch语句)处理的。本章还讲述了IDE的调试功能,包括一个单步执行程序语句并在执行期间检查中间值的逐步练习。
第5章“菜单、通用对话框和方法”,讲述了编写和调用普通方法的概念。学生将学习如何在工程中添加菜单和上下文菜单,如何显示通用对话框,以及如何使用用户提供的输入。
第6章“多窗体工程”,给工程添加了启动界面和About窗体。汇总数据在单独的窗体上给出。
第7章“列表、循环和打印”,向工程中加入了列表框和组合框,讨论了循环过程和打印信息清单。打印是在.NET中使用图形对象和回调事件完成的。打印控件还包括Print Preview,该控件允许学生和教师查看输出而不实际打印。
第8章“数组”,数组从逻辑上讲是第7章所讨论的列表的延伸。学生将学习一维和多维数组、表查找技术、结构以及结构数组。
第9章“Web应用程序”,介绍了Web Forms编程技术。Web Forms是用来创建在浏览器应用程序中执行的Web页面的。学生将学习如何设计和开发简单的Web应用程序。使用CSS样式和AJAX可以创建改进的高效的Web站点。
第10章“数据库应用程序”,介绍了ADO.NET——这是Microsoft访问数据库数据的技术。本章示范了如何创建绑定源、表适配器和数据集。本章的程序既要访问Windows Forms中的数据,又要访问Web Forms中的数据。学生将学习如何把数据表绑定到数据网格,以及如何把单独的数据字段绑定到诸如标签和文本框这样的控件。
第11章“数据文件”,介绍了数据文件的处理技术。学生将学习使用流来保存和读取少量的数据。StreamWriter和StreamReader对象用来存储和再加载组合框的内容。
第12章“创建面向对象的程序”,解释了更多面向对象编程的理论。虽然我们从 第1章以来一直在使用OOP的概念,但在本章学生才会学习OOP的术语和应用。本 章讨论的继承用于学习可视对象(窗体)和扩充现有类。本章介绍类的示例都非常 简单。
第13章“图形、动画、声音和拖放”,讨论了GDI+的类和方法。本章包括绘制形状和线条的图形对象、钢笔和画笔。动画是组合使用Timer控件和SetBounds方法(用于移动控件)完成的。学生将学习使用SoundPlayer类来播放声音。拖放事件用来把文本框的内容传递到列表框。
第14章“C#中的其他主题”,介绍了一些高级的编程主题。最后这一章讨论了如何使用Error Provider和控件的Validating事件来验证用户输入。学生将学习使用多文档界面(Multiple Document Interface,MDI)创建应用程序,使用ToolStrip和StatusStrip控件创建工具栏和状态栏,以及使用WebBrowser控件给Windows窗体添加Web内容。本章还介绍了代码片断功能、读写XML文件功能,以及LINQ to XML功能。
附录提供了重要的附加资料。“附录A”给出了所有反馈问题的答案。“附录B”包含用于日期、数学和字符串处理的方法。在OOP风格的程序中,动作是使用Math类和String类的方法完成的。“附录C”给出了掌握Visual Studio环境的技巧和快捷方式。“附录D”讨论了Windows和Web编程的安全问题。
致谢
在设计和制作本书的过程中,有许多人都做出了非常艰苦的工作,其中包括Janna Martin、Linda Schreiber、Kristen Bradley、Alaina Grayson……还有很多人。
我们非常感激Robert Price和Theresa Berry,感谢其严格的技术审查、建设性批评和很多宝贵的建议。感谢Theresa Berry对本书练习做出的工作。另外,我们要特别感谢Dennis和Richard,他们长期通过繁忙的电话给予我们支持和理解。
作者的话
我们编写C#的过程是愉快的,希望您在阅读本书时也能拥有这种感觉,祝愿您能享受到学习或讲授这种杰出编程语言所带来的乐趣。
采用该书作教材的教师可向McGraw-Hill公司北京代表处联系索取教学课件资料,传真:(010)6279 0292,电子邮件:instructorchina@mcgraw-hill.com。
Julia Case Bradley
Anita C. Millspaugh
??
??
??
??