本书是微软认证专家计划(Microsoft Certified Professional Program)培训课程教材之一:C#编程语言,是经微软出版社授权的全译本。\r\n C#编程语言是Microsoft.NET开发环境中的新一代编程语言,旨在支持下一代Web服务的软件开发。本培训教材分14个模块,全面介绍C#语法诸特征、C#与.NET平台的关系,内容浅显,概念清晰。\r\n 本书为培训教师编制:给出每个模块讲授的投影片,告诉教师讲授本模块的策略、准备材料、要做的实验准备,以及每个片子的讲授内容。每个片子及内容右侧均有导引性旁注。\r\n 本书对希望了解下一代网络计算技术的高校师生和广大软件开发者不失为一本好的自学教材。
0 绪论\r\n\r\n0.1 导言\r\n0.2 课程素材\r\n0.3 前提条件\r\n0.4 课程大纲\r\n0.5 课程大纲(续)\r\n0.6 课程大纲(续)\r\n0.7 微软认证的专家计划\r\n0.8 设施\r\n\r\n1 模块1:.NET平台概述\r\n\r\n1.1 概述\r\n1.2 介绍.NET平台\r\n1.3 .NET框架概述\r\n1.4 .NET框架的好处\r\n1.5 .NET框架构件\r\n1.5.1 通用语言运行时\r\n1.5.2 基础类库\r\n1.5.3 ADO.NET:数据和XML\r\n1.5.4 Web窗体和服务\r\n1.5.5 Windows的用户接口\r\n1.6 .NET框架中的语言\r\n1.7 复习\r\n\r\n2 模块2:C#概述\r\n\r\n2.1 概述\r\n2.2 C#程序的结构\r\n2.2.1 Hello,World\r\n2.2.2 类\r\n2.2.3 Main方法\r\n2.2.4 Using和System名字空间\r\n2.2.5 示例:使用Visual Studio创建一个C#程序\r\n2.3 基本输入/输出操作\r\n2.3.1 Console类\r\n2.3.2 Write和WriteLine方法\r\n2.3.3 Read和ReadLine方法\r\n2.4 推荐的实践\r\n2.4.1 注释应用程序\r\n2.4.2 生成XML文档\r\n2.4.3 示例:生成并浏览XML文档\r\n2.4.4 异常处理\r\n2.5 编译、运行和调试\r\n2.5.1 调用编译器\r\n2.5.2 运行应用程序\r\n2.5.3 示例:编译并运行C#程序\r\n2.5.4 调试\r\n2.5.5 多媒体:使用Visual Studio调试器\r\n2.5.6 SDK工具\r\n2.5.7 示例:使用ILDASM\r\n2.6 实验2:创建一个简单的C#程序\r\n2.6.1 练习1:创建一个简单的C#程序\r\n2.6.2 练习2:由命令行编译并运行C#程序\r\n2.6.3 练习3:使用调试器\r\n2.6.4 练习4:在C#程序中添加异常处理\r\n2.7 复习\r\n\r\n3 模块3:值类型变量的使用\r\n\r\n3.1 概述\r\n3.2 通用类型系统\r\n3.2.1 CTS的概述\r\n3.2.2 值类型和引用类型的对比\r\n3.2.3 基本类型的确定\r\n3.2.4 内置值类型和用户定义的值类型的对比\r\n3.2.5 简单类型\r\n3.3 变量命名\r\n3.3.1 变量命名的规则和推荐标准\r\n3.3.2 C#关键字\r\n3.3.3 测验:你能认出不被接受的变量名吗\r\n3.4 内置数据类型的使用\r\n3.4.1 声明局部变量\r\n3.4.2 给变量赋值\r\n3.4.3 复合赋值\r\n3.4.4 通用操作符\r\n3.4.5 增量和减量\r\n3.4.6 操作符的优先级\r\n3.5 创建用户定义的数据类型\r\n3.5.1 枚举类型\r\n3.5.2 结构类型\r\n3.6 数据类型的转换\r\n3.6.1 隐式数据类型的转换\r\n3.6.2 显式数据类型的转换\r\n3.7 实验3:创建和使用类型\r\n3.7.1 练习1:创建一个枚举类型\r\n3.7.2 练习2:创建和使用结构类型\r\n3.7.3 练习3(如果时间允许):增加输入/输出功能\r\n3.8 复习\r\n\r\n4 模块4:语句和异常\r\n\r\n4.1 概述\r\n4.2 语句介绍\r\n4.2.1 语句块\r\n4.2.2 语句类型\r\n4.3 使用选择语句\r\n4.3.1 if语句\r\n4.3.2 级连if语句\r\n4.3.3 switch(切换)语句\r\n4.3.4 小测验:找出错误\r\n4.4 使用迭代语句\r\n4.4.1 while语句\r\n4.4.2 do语句\r\n4.4.3 for语句\r\n4.4.4 Foreach语句\r\n4.4.5 小测验:找出错误\r\n4.5 使用跳转语句\r\n4.5.1 goto语句\r\n4.5.2 break和continue语句\r\n4.6 实验4.1:使用语句\r\n4.7 处理基本的异常\r\n4.7.1 为什么使用异常\r\n4.7.2 异常对象\r\n4.7.3 使用try和catch块\r\n4.7.4 多个catch块\r\n4.8 引发异常\r\n4.8.1 throw语句\r\n4.8.2 finally子句\r\n4.8.3 检查算术溢出\r\n4.8.4 处理异常的指导方针\r\n4.9 实验4.2:使用异常\r\n4.9.1 练习1:验证日期数值\r\n4.9.2 练习2:处理闰年\r\n4.10 复习\r\n\r\n5 模块5:方法和参数\r\n\r\n5.1 概述\r\n5.2 使用方法\r\n5.2.1 定义方法\r\n5.2.2 方法调用\r\n5.2.3 使用return语句\r\n5.2.4 使用局部变量\r\n5.2.5 返回数值\r\n5.3 参数的使用\r\n5.3.1 声明和调用参数\r\n5.3.2 传递参数的机制\r\n5.3.3 值传递\r\n5.3.4 引用传递\r\n5.3.5 输出参数\r\n5.3.6 使用长度可改变的参数表\r\n5.3.7 参数传递指南\r\n5.3.8 递归方法的使用\r\n5.4 重载方法的使用\r\n5.4.1 声明重载方法\r\n5.4.2 方法型构\r\n5.4.3 使用方法重载\r\n5.5 实验5:创建和使用方法\r\n5.5.1 练习1:在方法中使用参数返回值\r\n5.5.2 练习2:使用带引用参数的方法\r\n5.5.3 练习3:使用带输出参数的方法\r\n5.5.4 练习4(如果时间允许):使用递归来实现\r\n5.6 复习\r\n\r\n6 模块6:数组\r\n\r\n6.1 概述\r\n6.2 数组概述\r\n6.2.1 什么是数组\r\n6.2.2 C#中数组的表示法\r\n6.2.3 数组维度\r\n6.2.4 访问数组元素\r\n6.2.5 检查数组边界\r\n6.2.6 比较数组和集合\r\n6.3 创建数组\r\n6.3.1 创建数组实例\r\n6.3.2 初始化数组元素\r\n6.3.3 初始化多维数组\r\n6.3.4 创建可计算大小的数组\r\n6.3.5 复制数组变量\r\n6.4 使用数组\r\n6.4.1 数组属性\r\n6.4.2 数组方法\r\n6.4.3 从方法中返回数组\r\n6.4.4 将数组作为参数传递\r\n6.4.5 命令行变元\r\n6.4.6 演示:主程序的变元\r\n6.4.7 用foreach来使用数组\r\n6.4.8 小测验:发现错误\r\n6.5 实验6:创建和使用数组\r\n6.5.1 练习1:使用值类型数组完成\r\n6.5.2 练习2:矩阵乘法\r\n6.6 复习\r\n\r\n7 模块7:面向对象编程的本质\r\n\r\n7.1 概述\r\n7.2 类和对象\r\n7.2.1 什么是类\r\n7.2.2 什么是对象\r\n7.2.3 类和结构的比较\r\n7.2.4 抽象\r\n7.3 封装的使用\r\n7.3.1 组合数据和方法\r\n7.3.2 控制访问的可见性\r\n7.3.3 为什么使用封装\r\n7.3.4 对象数据\r\n7.3.5 使用静态数据\r\n7.3.6 静态方法的使用\r\n7.4 C#和面向对象\r\n7.4.1 重温Hello,World\r\n7.4.2 定义简单类\r\n7.4.3 新对象的实例化\r\n7.4.4 this操作符的使用\r\n7.4.5 创建嵌套类\r\n7.4.6 嵌套类的访问\r\n7.5 实验7:类的创建和使用\r\n7.5.1 练习1:创建和使用类\r\n7.5.2 练习2:生成账户号\r\n7.5.3 练习3:添加更多公有方法\r\n7.6 定义面向对象系统\r\n7.6.1 继承\r\n7.6.2 类的层次\r\n7.6.3 单继承和多继承\r\n7.6.4 多态性\r\n7.6.5 抽象基类\r\n7.6.6 接口\r\n7.6.7 早束定和晚束定\r\n7.7 复习\r\n\r\n8 模块8:引用类型变量的使用\r\n\r\n8.1 概述\r\n8.2 引用类型变量的使用\r\n8.2.1 值类型和引用类型的比较\r\n8.2.2 声明和释放引用变量\r\n8.2.3 非法引用\r\n8.2.4 比较值与比较引用\r\n8.2.5 同一对象的多重引用\r\n8.2.6 引用作为方法参数的使用\r\n8.3 公共引用类型的使用\r\n8.3.1 异常类\r\n8.3.2 String类\r\n8.3.3 常用字符串的方法、操作符和属性\r\n8.3.4 串比较\r\n8.3.5 字符串比较操作符\r\n8.4 对象层次\r\n8.4.1 对象类型\r\n8.4.2 公用方法\r\n8.4.3 反射\r\n8.5 .NET框架中的名字空间\r\n8.5.1 System.IO名字空间\r\n8.5.2 System.XML名字空间\r\n8.5.3 System.Data名字空间\r\n8.5.4 其他有用的名字空间\r\n8.6 实验8.1:引用类型变量的定义和使用\r\n8.6.1 练习1:增加一个带两个参数的实例方法\r\n8.6.2 练习2:字符串反转\r\n8.6.3 练习3:拷贝成大写文件\r\n8.7 数据转换\r\n8.7.1 值类型的转换\r\n8.7.2 父类和子类的转换\r\n8.7.3 is操作符\r\n8.7.4 as操作符\r\n8.7.5 转换和object类型\r\n8.7.6 转换和接口\r\n8.7.7 装匣和脱匣\r\n8.8 多媒体:类型安全的强制\r\n8.9 实验8.2:数据转换\r\n8.9.1 练习1:测试一个接口的实现\r\n8.9.2 练习2:以接口工作\r\n8.9.3 练习3(如果时间允许):测试以下方法\r\n8.10 复习\r\n\r\n9 模块9:创建和删除对象\r\n\r\n9.1 概述\r\n9.2 使用构造子\r\n9.2.1 创建对象\r\n9.2.2 使用缺省的构造子\r\n9.2.3 覆盖缺省构造子\r\n9.2.4 重载构造子\r\n9.3 初始化数据\r\n9.3.1 使用初始化表\r\n9.3.2 声明只读的变量和常量\r\n9.3.3 初始化只读域\r\n9.3.4 为结构声明构造子\r\n9.3.5 使用私有构造子\r\n9.3.6 使用静态构造子\r\n9.4 实验9.1:创建对象\r\n9.4.1 练习1:实现构造子\r\n9.4.2 练习2:初始化只读数据\r\n9.5 对象和内存\r\n9.5.1 对象的生存期\r\n9.5.2 对象和作用域\r\n9.5.3 垃圾回收\r\n9.6 使用析构子\r\n9.6.1 Finalize方法\r\n9.6.2 编写析构子\r\n9.6.3 析构子和终止化方法\r\n9.6.4 析构子的定时警告\r\n9.6.5 GC.SuppressFinalize()\r\n9.6.6 使用处置设计型\r\n9.6.7 使用IDisposable\r\n9.7 实验9.2:销除对象\r\n9.7.1 练习1:创建析构子\r\n9.7.2 练习2:使用处置设计型\r\n9.8 复习\r\n\r\n10 模块10:C#中的继承\r\n\r\n10.1 概述\r\n10.2 派生类\r\n10.2.1 扩展基类\r\n10.2.2 访问基类的成员\r\n10.2.3 调用基类的构造子\r\n10.3 实现方法\r\n10.3.1 定义虚方法\r\n10.3.2 使用虚方法\r\n10.3.3 覆盖方法\r\n10.3.4 使用覆盖方法\r\n10.3.5 使用new隐藏方法\r\n10.3.6 使用关键字new\r\n10.3.7 实践:实现方法\r\n10.3.8 测验:找出错误\r\n10.4 使用封固类\r\n10.5 使用接口\r\n10.5.1 声明接口\r\n10.5.2 实现多接口\r\n10.5.3 实现接口方法\r\n10.5.4 显式地实现接口方法\r\n10.5.5 测验:找出错误\r\n10.6 使用抽象类\r\n10.6.1 声明抽象类\r\n10.6.2 在类的层次中使用抽象类\r\n10.6.3 在类的层次中使用抽象类(续)\r\n10.6.4 抽象类与接口的比较\r\n10.6.5 实现抽象方法\r\n10.6.6 使用抽象方法\r\n10.6.7 测验:找出错误\r\n10.7 实验10:用继承实现接口\r\n10.7.1 练习1:将一个C#源文件转换为有彩色语法的HTML文件\r\n10.7.2 练习2:将C#源文件转换成彩色语法HTML文件\r\n10.8 复习\r\n\r\n11 模块11:聚集、名字空间及高级作用域\r\n\r\n11.1 概述\r\n11.2 内部类、方法及数据的使用\r\n11.2.1 为什么使用内部访问\r\n11.2.2 内部访问\r\n11.2.3 语法\r\n11.2.4 内部访问实例\r\n11.3 聚集的使用\r\n11.3.1 对象中的对象\r\n11.3.2 聚集与继承的比较\r\n11.3.3 Factory方法\r\n11.3.4 Factory示例\r\n11.4 实验11.1:指定内部访问\r\n11.5 名字空间的使用\r\n11.5.1 复习作用域\r\n11.5.2 解决名字冲突\r\n11.5.3 名字空间的声明\r\n11.5.4 完全受限的名字\r\n11.5.5 使用_名字空间_指令的声明\r\n11.5.6 使用_别名_指令的声明\r\n11.5.7 名字空间命名的指南\r\n11.6 模块和组装的使用\r\n11.6.1 模块的使用\r\n11.6.2 组装的使用\r\n11.6.3 创建组装\r\n11.6.4 名字空间与组装的比较\r\n11.6.5 版本的使用\r\n11.7 实验11.2:使用名字空间和组装\r\n11.8 复习\r\n\r\n12 模块12:操作符、委派及事件\r\n\r\n12.1 概述\r\n12.2 操作符的介绍\r\n12.2.1 扩展基类\r\n12.2.2 预定义C#操作符\r\n12.2.3 转换操作符\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.3.6 测验:指出错误\r\n12.4 实验12.1:操作符的定义\r\n12.4.1 练习1:为BankAccount类定义操作符\r\n12.4.2 练习2:有理数的处理\r\n12.4.3 练习3:创建其他有理数操作符\r\n12.5 委派的创建和使用\r\n12.5.1 场景:发电厂\r\n12.5.2 分析问题\r\n12.5.3 委派的创建\r\n12.5.4 委派的使用\r\n12.6 事件的定义和使用\r\n12.6.1 事件是如何工作的\r\n12.6.2 事件的定义\r\n12.6.3 事件参数的传递\r\n12.7 示例:事件的处理\r\n12.8 实验12.2:事件的定义和使用\r\n12.9 复习\r\n\r\n13 模块13:性质和索引器\r\n\r\n13.1 概述\r\n13.2 使用性质\r\n13.2.1 为什么要使用性质\r\n13.2.2 使用访问器\r\n13 2.3 比较性质和域\r\n13.2.4 比较域和方法\r\n13.2.5 性质类型\r\n13.2.6 性质实例\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.3.6 BitArray实例\r\n13.4 实验13:使用性质和索引器\r\n13.4.1 练习1:增强Account类\r\n13.4.2 练习2:修改事务类\r\n13.4.3 练习3:创建和使用索引器\r\n13.5 复习\r\n\r\n14 模块14:属性\r\n\r\n14.1 概述\r\n14.2 属性的概述\r\n14.2.1 属性的介绍\r\n14.2.2 应用属性\r\n14.2.3 通用预定义属性\r\n14.2.4 条件属性的使用\r\n14.2.5 DllImport属性的使用\r\n14.2.6 Transaction属性的使用\r\n14.3 定义定制属性\r\n14.3.1 定制属性的作用域\r\n14.3.2 属性类的定义\r\n14.3.3 定制属性的处理\r\n14.3.4 多属性的使用\r\n14.4 检索属性值\r\n14.4.1 类元数据的检查\r\n14.4.2 属性信息的查询\r\n14.5 实验14:属性的定义和使用\r\n14.5.1 练习1:Conditional属性的使用\r\n14.5.2 练习2:定义和使用定制属性\r\n14.6 复习
无封面