本书是《微软.NET程序员系列》从书之一,它对如何使用Visual C#.NET开发各种应用程序进行了全面、深入的探讨。本书分5大部分,共21章。第I部分概要介绍了Visual C#.NET程序设计的基础知识;第II部分讲述了Visual C#.NET的高级应用,介绍与过去的编程语言相比的独到之处:第III部分介绍了Windows窗体设计,详细地讲述了Windows窗体的用法,以及它对应用程序编写过程的简化;第IV部分着重介绍.NET框架所使用的数据访问、存储技术ADO.NET以及XML的有关内容;第V部分则着重介绍了使用Visual C#.NET创建可用于Web的应用程序的方法和相关技术,介绍了SOAP和Web服务。\r\n 本书适合于具有一定的编程经验。想要学习使用Visual C#.NET编程语言的开发人员。
前言\r\n\r\n第1部分 Visual C#.NET简介\r\n\r\n第1章 Visual Studo.NET和Visual C#.NET简介\r\n\r\n1.1 创建基于.NET平台的应用程序\r\n1.1.1 .NET框架\r\n1.1.2 了解程序集\r\n1.2 Visual Studio.NET简介\r\n1.2.1 起始页\r\n1.2.2 Visual Studio.NET的窗口\r\n1.2.3 Visual Studio.NET选项\r\n1.2.4 Visual Studio.NET的帮助\r\n1.3 创建Visual C#解决方案\r\n1.3.1 使用项目模板\r\n1.3.2 生成新的解决方案\r\n1.4 典型Visual C#程序的布局\r\n1.4.1 注释源代码\r\n1.4.2 使用命名空间\r\n1.4.3 声明类\r\n1.4.4 定义Main方法\r\n1.4.5 编译项目\r\n1.4.6 输出Hello World\r\n1.5 本章小结\r\n\r\n第2章 C#基础\r\n\r\n2.1 基本数据类型\r\n2.1.1 .NET公共类型系统\r\n2.1.2 公共语言规范\r\n2.2 类\r\n2.2.1 在Visual C#中添加类\r\n2.2.2 声明类\r\n2.2.3 继承简介\r\n2.2.4 object基类\r\n2.2.5 类成员\r\n2.2.6 继承和方法\r\n2.2.7 可访问性\r\n2.3 命名空间\r\n2.3.1 新建命名空间\r\n2.3.2 使用命名空间\r\n2.3.3 添加引用\r\n2.4 接口\r\n2.4.1 使用接口\r\n2.4.2 类和接口\r\n2.5 通过异常处理来管理错误\r\n2.5.1 异常处理\r\n2.5.2 .NET框架的异常\r\n2.6 强制类型转换\r\n2.7 结构\r\n2.7.1 结构与继承\r\n2.7.2 分配结构\r\n2.7.3 成员函数\r\n2.8 枚举\r\n2.9 本章小结\r\n\r\n第3章 值类型和引用类型\r\n\r\n3.1 理解值类型\r\n3.1.1 值类型的生存期\r\n3.1.2 装箱\r\n3.1.3 声明新的值类型\r\n3.2 理解引用类型\r\n3.2.1 处理数组\r\n3.2.2 处理字符串\r\n3.2.3 引用类型的生存期和垃圾回收\r\n3.3 本章小结\r\n\r\n第4章 运算符、类型转换和属性\r\n\r\n4.1 了解运算符\r\n4.1.1 使用关系运算符比较对象\r\n4.1.2 使用逻辑运算符构建逻辑表达式\r\n4.1.3 使用算术运算符进行算术运算\r\n4.1.4 使用位运算符管理位模式\r\n4.1.5 使用赋值运算符设置变量的值\r\n4.1.6 使用条件运算符\r\n4.1.7 获取类型信息\r\n4.1.8 直接寻址\r\n4.1.9 使用其他运算符\r\n4.2 使用运算符\r\n4.2.1 理解运算符优先级\r\n4.2.2 使用checked和unchecked关键字\r\n4.2.3 为类型定义运算符\r\n4.2.4 创建新的值类型\r\n4.2.5 控制&&和||行为\r\n4.3 类型转换\r\n4.3.1 进行隐式类型转换\r\n4.3.2 进行显式类型转换\r\n4.3.3 使用Convert类\r\n4.3.4 进行用户自定义类型转换\r\n4.4 数值的基本字符串格式\r\n4.5 将属性作为智能字段使用\r\n4.6 本章小结\r\n\r\n第5章 流程控制\r\n\r\n5.1 根据条件选取代码路径\r\n5.1.1 if语句\r\n5.1.2 switch语句\r\n5.2 使用迭代语句建立循环\r\n5.2.1 for循环\r\n5.2.2 foreach循环\r\n5.2.3 while循环\r\n5.2.4 do循环\r\n5.3 使用跳转语句改变控制\r\n5.3.1 break语句\r\n5.3.2 continue语句\r\n5.3.3 goto语句\r\n5.3.4 return语句\r\n5.3.5 throw语句\r\n5.3.6 将控制转出异常处理模块\r\n5.4 本章小结\r\n\r\n第II部分 C#高级应用\r\n\r\n第6章 委托与特性\r\n\r\n6.1 使用委托\r\n6.1.1 创建委托\r\n6.1.2 将委托用作回调方法\r\n6.1.3 将委托作为算符使用\r\n6.1.4 组合委托\r\n6.1.5 手工迭代委托链\r\n6.1.6 委托与非静态方法的共用\r\n6.2 事件处理\r\n6.2.1 使用事件字段\r\n6.2.2 引发事件\r\n6.2.3 使用事件的例子\r\n6.3 设置特性\r\n6.3.1 使用特性\r\n6.3.2 特性解析\r\n6.3.3 定义自定义特性\r\n6.3.4 创建强名称\r\n6.4 本章小结\r\n\r\n第7章 索引生成器与枚举数\r\n\r\n7.1 使用索引生成器\r\n7.1.1 声明索引生成器\r\n7.1.2 为接口声明索引生成器\r\n7.1.3 索引生成器示例\r\n7.2 使用枚举数\r\n7.2.1 理解枚举数接口\r\n7.2.2 实现枚举接口\r\n7.2.3 使用枚举接口\r\n7.3 本章小结\r\n\r\n第8章 集合与排序\r\n\r\n8.1 比较与排序\r\n8.1.1 用IComparable接口创建可比类型\r\n8.1.2 用IComparer接口建立比较类\r\n8.2 在集合类中的排序对象\r\n8.2.1 集合界面的一般应用\r\n8.2.2 使用Queue类\r\n8.2.3 使用Stack类\r\n8.2.4 使用Hashtable类\r\n8.2.5 使用专用集合类\r\n8.3 本章小结\r\n\r\n第9章 调试技术\r\n\r\n9.1 根据条件编译代码\r\n9.2 跟踪堆栈\r\n9.2.1 显示调用堆栈\r\n9.2.2 访问详细的方法信息\r\n9.3 使用Trace和Debug类\r\n9.3.1 生成程序跟踪信息\r\n9.3.2 用Trace和Debug类显示消息\r\n9.3.3 用开关控制输出\r\n9.3.4 使用跟踪侦听器处理跟踪消息\r\n9.4 用Visual Studio.NET进行调试\r\n9.4.1 设置断点\r\n9.4.2 使用调用堆栈\r\n9.5 本章小结\r\n\r\n第10章 高级论题\r\n\r\n10.1 编写多线程代码\r\n10.1.1 了解应用程序域\r\n10.1.2 使用线程\r\n10.1.3 同步共享对象访问\r\n10.1.4 使用线程池的异步操作\r\n10.2 使用不安全代码\r\n10.2.1 了解对不安全代码的需求\r\n10.2.2 声明不安全上下文\r\n10.3 本章小结\r\n\r\n第III部分 Windows窗体设计\r\n\r\n第11章 Windows窗体简介\r\n\r\n11.1 理解Windows窗体\r\n11.1.1 将窗体作为对话框使用\r\n11.1.2 把窗体作为视图使用\r\n11.2 开发简单的Windows窗体项目\r\n11.2.1 检查Visual C#.NET创建的文件\r\n11.2.2 执行Windows窗体项目\r\n11.2.3 为项目添加新窗体\r\n11.2.4 模式窗体与无模式窗体\r\n11.2.5 确定DialogResult值\r\n11.2.6 向窗体传递值\r\n11.3 用消息框显示信息\r\n11.3.1 指定消息框按钮\r\n11.3.2 向消息框中添加图标\r\n11.3.3 为消息框定义默认按钮\r\n11.3.4 控制消息框的特殊情况\r\n11.3.5 为消息框指定父窗口\r\n11.4 控制Windows窗体应用程序\r\n11.4.1 启动应用程序\r\n11.4.2 确定应用程序路径信息\r\n11.4.3 执行空闲操作\r\n11.4.4 关闭应用程序\r\n11.5 使用窗体属性影响窗体性态\r\n11.5.1 设置边框风格\r\n11.5.2 定义其他窗体属性\r\n11.6 本章小结\r\n\r\n第12章 为窗体添加控件\r\n\r\n12.1 控件简介\r\n12.2 使用Button类\r\n12.2.1 ButtonBase类\r\n12.2.2 Button类\r\n12.2.3 RadioButton类\r\n12.2.4 CheckBox类\r\n12.3 基本事件处理\r\n12.3.1 事件处理结构\r\n12.3.2 添加新的事件处理器\r\n12.3.3 删除事件处理器\r\n12.3.4 把按键转换为点击按钮\r\n12.3.5 验证控件的内容\r\n12.4 使用TextBox类\r\n12.4.1 隐藏文本框控件中的密码\r\n12.4.2 使用多行文本框控件\r\n12.4.3 使用其他的文本框属性\r\n12.5 使用Label类\r\n12.6 使用LinkLabel类\r\n12.6.1 处理Click事件\r\n12.6.2 LinkLabel的独有属性\r\n12.7 使用ListBox类\r\n12.7.1 向列表框中添加项目\r\n12.7.2 从列表框中删除项目\r\n12.7.3 防止在当更新列表框时重新绘制\r\n12.7.4 选择列表框项目\r\n12.7.5 使用其他列表框属性\r\n12.8 使用CheckedListBox类\r\n12.8.1 选中复选列表框中的项目\r\n12.8.2 处理复选列表框事件\r\n12.9 使用ComboBox类\r\n12.9.1 使用组合框的属性\r\n12.9.2 处理组合框事件\r\n12.10 使用ScrollBar类进行卷动控制\r\n12.11 作为容器的控件\r\n12.11.1 内嵌控件\r\n12.11.2 GroupBox类\r\n12.11.3 Panel类\r\n12.12 本章小结\r\n\r\n第13章 用户输入与反馈\r\n\r\n13.1 使用鼠标\r\n13.1.1 处理鼠标移动事件\r\n13.1.2 处理鼠标选择事件\r\n13.1.3 用鼠标指针提供反馈\r\n13.2 接受键盘输入\r\n13.2.1 获取输入焦点\r\n13.2.2 使用Keys枚举\r\n13.2.3 从键盘处理事件\r\n13.3 使用有窗体的主菜单\r\n13.3.1 创建主菜单\r\n13.3.2 处理菜单事件\r\n13.3.3 更新菜单项\r\n13.3.4 使用多个菜单\r\n13.3.5 创建简单的编辑器\r\n13.4 实现快捷菜单\r\n13.4.1 创建基本的快捷菜单\r\n13.4.2 快捷菜单的编程\r\n13.5 用状态栏提供反馈\r\n13.5.1 创建状态栏\r\n13.5.2 使用状态栏面板\r\n13.5.3 显示时间和日期\r\n13.6 本章小结\r\n\r\n第14章 GDI+\r\n\r\n14.1 了解Windows窗体几何形状\r\n14.1.1 用Point结构指定位置\r\n14.1.2 定义可视元素的大小\r\n14.1.3 定义矩形\r\n14.2 使用Graphics类\r\n14.2.1 处理Paint事件\r\n14.2.2 用GDI+绘制文本\r\n14.2.3 绘制线条\r\n14.2.4 绘制矩形\r\n14.2.5 填充矩形\r\n14.3 对Windows窗体使用颜色\r\n14.3.1 创建Color结构\r\n14.3.2 使用Color属性\r\n14.3.3 使用当前的系统颜色\r\n14.3.4 【颜色】公用对话框\r\n14.4 使用画笔\r\n14.4.1 创建纯色画笔\r\n14.4.2 使用TextureBrush类\r\n14.4.3 使用阴影画笔模式填充形状\r\n14.4.4 使用LinearGradientBrush类\r\n14.4.5 使用PathGradientBrush类\r\n14.5 使用笔\r\n14.5.1 使用SystemPens和Pens\r\n14.5.2 使用Pen类\r\n14.6 使用字体\r\n14.6.1 了解字体符号集\r\n14.6.2 使用FontCollection类\r\n14.6.3 字体规格\r\n14.6.4 【字体】公用对话框\r\n14.7 本章小结\r\n\r\n第15章 高级控件\r\n\r\n15.1 使用Up-Down控件\r\n15.1.1 NumericUpDown控件\r\n15.1.2 DomainUpDown控件\r\n15.2 使用ProgressBar控件\r\n15.3 使用PictureBox控件\r\n15.4 使用ImageList控件\r\n15.5 使用RichTextBox控作\r\n15.5.1 公共格式化选项\r\n15.5.2 从文件加载RichTextBox控件\r\n15.5.3 保存RichTextBox控件的内容\r\n15.6 使用TabControl控件\r\n15.6.1 创建TabPage对象\r\n15.6.2 编程管理TabPage对象\r\n15.6.3 使用Windows窗体设计器创建TabControl控件\r\n15.6.4 管理TabControl控件\r\n15.7 使用MonthCalendar控件\r\n15.8 使用DateTimePicker控件\r\n15.9 管理控件的位置和大小\r\n15.9.1 锚定控件\r\n15.9.2 停靠控件\r\n15.10 本章小结\r\n\r\n第16章 Grid、Tree和List控件\r\n\r\n16.1 使用DataGrid控件\r\n16.1.1 显示数据库数据\r\n16.1.2 在数据网格中显示分级数据\r\n16.1.3 高级数据网格\r\n16.2 在TreeView控件中显示分级信息\r\n16.2.1 设计TreeView控件\r\n16.2.2 生成动态的TreeView控件\r\n16.2.3 实现自定义的TreeView控件\r\n16.3 使用ListView控件\r\n16.3.1 实现ListView控件\r\n16.3.2 注册表编辑器——TreeView与ListView的组合\r\n16.4 本章小结\r\n\r\n第17章 增强Windows窗体\r\n\r\n17.1 添加工具栏\r\n17.1.1 创建工具栏\r\n17.1.2 修改工具栏的外观\r\n17.1.3 定义工具栏按钮样式\r\n17.2 使用剪贴板\r\n17.2.1 复制到剪贴板\r\n17.2.2 获取剪贴板中的数据\r\n17.2.3 了解剪贴板格式\r\n17.2.4 在剪贴板上用多种格式存储相同的数据\r\n17.3 使用拖放\r\n17.3.1 拖放基础\r\n17.3.2 启用FileDrop\r\n17.3.3 实现拖放源\r\n17.4 本章小结\r\n\r\n第IV部分 数据访问和XML\r\n\r\n第18章 ADO.NET\r\n\r\n18.1 ADO.NET的新特性\r\n18.1.1 ADO.NET的断开连接模型\r\n18.1.2 XML集成\r\n18.1.3 ADO.NET数据集\r\n18.1.4 .NET数据提供程序\r\n18.2 创建和使用数据集\r\n18.2.1 添加记录\r\n18.2.2 检测已更改的数据\r\n18.2.3 接受更改\r\n18.2.4 绑定到数据组件\r\n18.2.5 持续数据\r\n18.3 建立到数据存储器的连接\r\n18.3.1 创建Connection对象\r\n18.3.2 连接到数据库\r\n18.3.3 用.NET数据提供程序集中连接\r\n18.3.4 启动事务\r\n18.3.5 完成事务\r\n18.3.6 关闭连接\r\n18.4 执行命令\r\n18.4.1 构建Command对象\r\n18.4.2 提供命令文本\r\n18.4.3 关联到连接\r\n18.4.4 关联到事务\r\n18.4.5 配置命令超时\r\n18.4.6 指定命令类型\r\n18.4.7 传递参数\r\n18.4.8 执行命令\r\n18.5 使用DataReader对象检索数据\r\n18.6 使用DataAdapter对象填充数据集\r\n18.6.1 构建DataAdapter对象\r\n18.6.2 将命令与DataAdapter关联\r\n18.6.3 填充数据集\r\n18.6.4 更新数据\r\n18.6.5 表映射\r\n18.6.6 使用【数据适配器配置向导】\r\n18.7 本章小结\r\n\r\n第19章 XML\r\n\r\n19.1 读写XML\r\n19.1.1 使用XmlTextWriter创建XML\r\n19.1.2 使用XmlTextReader读取XML\r\n19.2 使用文档对象模型(DOM)\r\n19.2.1 使用XML文档\r\n19.2.2 使用DOM的示例应用程序\r\n19.3 数据集与XML\r\n19.3.1 将XML数据加入数据集\r\n19.3.2 从数据集写入XML\r\n19.4 使用Visual C#.NET编辑XML文件\r\n19.4.1 创建和编辑XML原始数据\r\n19.4.2 查看和编辑架构\r\n19.4.3 添加XML数据\r\n19.5 本章小结\r\n\r\n第V部分 ASP.NET和Web服务\r\n\r\n第20章 Web窗体\r\n\r\n20.1 使用ASP.NET的必备条件\r\n20.2 ASP.NET的特性\r\n20.2.1 逻辑和用户界面的分离\r\n20.2.2 己编译的页面\r\n20.2.3 支持多种语言\r\n20.2.4 事件驱动模型\r\n20.2.5 改善的对象模型\r\n20.2.6 可伸缩性和性能\r\n20.2.7 安全性\r\n20.2.8 支持跟踪和调试\r\n20.3 Web窗体简介\r\n20.3.1 基于服务器的编程\r\n20.3.2 回传和往返\r\n20.3.3 继开的访问和页面重建\r\n20.4 创建基本的Web窗体页面\r\n20.4.1 创建项目\r\n20.4.2 创建Calculatorl的Web窗体页面\r\n20.4.3 添加控件\r\n20.4.4 添加静态HTML文本\r\n20.4.5 设计按钮控件\r\n20.4.6 运行页面\r\n20.4.7 检验Calculator1的Web窗体页面\r\n20.5 Web窗体控件\r\n20.5.1 标准用户界面控件\r\n20.5.2 显示数据的控件\r\n20.5.3 验证控件\r\n20.5.4 专用控件\r\n20.5.5 Web服务器控件的事件\r\n20.6 创建带有控件事件的Web窗体页面\r\n20.6.1 创建配置Web窗体的页面\r\n20.6.2 为ListBox控件创建列表项\r\n20.6.3 创建事件处理程序\r\n20.7 维持状态:保留往返传递之间的值\r\n20.8 创建一个保留值的Web窗体页面\r\n20.8.1 创建Calculator2的Web窗体页面\r\n20.8.2 在Calculator2的Web窗体页面中添加代码\r\n20.9 使用Web窗体中的数据\r\n20.9.1 创建DataBinding_Simple Web窗体页面\r\n20.9.2 绑定到ADO.NET数据集\r\n20.9.3 直接作用于数据库\r\n20.9.4 存储数据集\r\n20.9.5 使用List Data控件\r\n20.10 本章小结\r\n\r\n第21章 SOAP和Web服务\r\n\r\n21.1 了解SOAP\r\n21.2 了解Web服务\r\n21.2.1 WebService指令\r\n21.2.2 派生于System.Web.Services.WebService类\r\n21.2.3 使用WebService属性\r\n21.2.4 使用WebMethod属性\r\n21.3 创建Web服务\r\n21.3.1 创建Web服务类\r\n21.3.2 创建Web方法\r\n21.4 使用发现查找Web服务\r\n21.4.1 使用静态发现\r\n21.4.2 使用动态发现\r\n21.4.3 广告发现页面\r\n21.4.4 了解WSDL\r\n21.5 浏览Web服务\r\n21.6 使用Web服务\r\n21.6.1 使用HTTP GET协议\r\n21.6.2 使用HTTP POST协议\r\n21.6.3 使用SOAP协议\r\n21.6.4 在Visual Studio.NET IDE中引用Web服务\r\n21.6.5 生成Web服务代理\r\n21.7 部署Web服务\r\n21.8 设置Web服务的安全性\r\n21.8.1 配置IIS身份验证\r\n21.8.2 使用数字证书\r\n21.8.3 设置Internet协议安全\r\n21.8.4 提供自定义的身份验证\r\n21.9 本章小结
第一次使用Visual C#. NET, 就立刻为其编码效率所震惊. 尽管当时所使用的是测试版, 但整个开发环境和. NET框架己为我简化了大量的工作. 编码效率的提高应归功于以下4个因素:
● C#编程语言非常适合于基于组件的开发
● 公共语言运行库提供了简化的编程和部署模型
● . NET框架及其相关类库
● Microsoft Visual Studio. NET开发环境中所包含的自动开发特性
Visual C#. NET中的开发工具非常先进, 与我在80年代中期开始开发Windows程序时所使用的那些工具相比, 简直是天壤之别. 所以, 当有人邀请我写一本关于Visual C#. NET的书时, 我实在无法拒绝. 很高兴您选择了本书作为Visual C#. NET的教材, 相信您一定会发现使用Visual C#. NET是一件非常值得的事情.
我很乐于与读者交流, 也愿意回答您在阅读本书的过程中出现的任何问题. 如果您有任何反馈或问题, 与我联系, 我的E-mail地址是mickey. williams@codevtech. com. 我可能无法及时回复, 但一定会回复所有的邮件.
本书组织结构
本书分为5大部分, 分别介绍了Visual C#. NET编程的各方面内容.
第I部分 介绍了Visual C#. NET环境, 还介绍了C#变成语言的核心内容.
第II部分 描述了C#编程语言和. NET框架的高级应用. 除委托和异常处理之外, 还讨论了集合类. 调试和编写多线程代码等内容.
第III部分 在这部分中, 读者将了解如何用Visual C#. NET编写图形用户界面(GUI)应用程序. . NET框架包含对基于Windows窗体的应用程序的广泛支持, 在本章中, 读者还会看到许多便于使用的高级控件.
第IV部分 介绍了ADO. NET和XML, 通过本章的学习, 读者将了解如何使用ADO. NET访问诸如SQL Server数据库中的数据. 还介绍了为使用XML而实现新模型的. NET框架类, 其中的数据是从XML流中拖出的. 使用. NET框架和Visual C#. NET, 就能够很容易地使用XML或ADO. NET来管理数据.
第V部分 集中讨论了使用ASP. NET和Visual C#. NET对Web应用程序的创建, 并为读者演示了使用Web服务的方法.
读者对象
本书适合于那些想学习使用Visual C#. NET编程语言的开发人员. 本书对使用Visual C#. NET编程进行了全面. 深入的探讨. 除C#编程语言之外, 本书还讨论了. NET框架中的一些常用的类, 包括Windows窗体编程. ASP. NET. XML. Web服务等内容.
系统要求
为使用本书中的所有代码, 您需要安装Visual C#. NET或Visual Studio. NET. 只要您的系统满足Visual C#. NET的最低要求, 就能够正常运行本书中的绝大部分例子. 请注意Windows XP家庭版和Windows NT 4不支持. NET框架中的XML Web服务和ASP. NET Web应用程序. 尽管您可以在这些操作系统上建立这些项目, 但要想执行这些项目, 就需要将它们上传给具有恰当配置的主机. 这里我建议选择Windows XP Professional或是Windows 2000 Professional操作系统作为开发平台. 另外, 要想运行第20章中的代码, 需要安装IIS 4或其更新版本.
练习文件
为帮助读者节省学习时间, 作者提供了本书中所有操作需要用到的练习文件. 在这些练习文件的帮助下, 读者可以集中精力学习如何使用Visual C#. NET来编写各种程序. 通过书中的指导, 自己动手操作, 学用并举, 这显然是获取新知识最简单有效的途径, 能达到事半功倍的学习效果. 本书所有练习文件都可在配书光盘中找到.
注意 适合与本书配套使用的软件是Microsoft Visual Studio. NET Professional, 请在学习之前确定安装了恰当版本的Visual Studio. 要了解版本信息, 请查看软件的产品包装, 或启动Visual Studio, 然后在[帮助]菜单中选择[关于Microsoft Development Environment], 从中查找相关信息.