新書推薦:
《
可转债——新手理财的极简工具
》
售價:HK$
65.0
《
新加坡教育:神话与现实
》
售價:HK$
96.3
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
291.2
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
177.0
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
109.8
《
中国常见植物野外识别手册:青海册
》
售價:HK$
76.2
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:HK$
87.4
|
編輯推薦: |
十二五普通高等教育本科*规划教材,10小时微信视频,全程语音讲解。理论与实践结合:从基础知识学习,最终能综合所学内容开发应用。体现*C#特性 精心设计的习题:在重点难点部分,为读者精心设计了习题。这些习题有助于读者更好地理解重点,提高分析代码的能力,同时在编程中规避常见错误。"
|
內容簡介: |
本书是《C#程序设计教程》的第3版。书中基于Visual Studio 2017.NET Framework 4.7开发和运行环境,阐述C# 7.0语言的基础知识,以及使用C# 7.0语言的实际开发应用实例,具体内容包括:C#语言基础、面向对象编程、结构、枚举、泛型、特性、语言集成查询、多线程编程技术、数值日期和字符串处理、文件和流输入输出、集合、数据库访问、Windows窗体应用程序、WPF应用程序、ASP.NET Web应用程序设计等。 本书作者结合多年的程序设计、开发及授课经验,精选大量的实例,由浅入深、循序渐进地介绍C#程序设计语言,让读者能够较为系统全面地掌握程序设计的理论和应用。每个相关知识点都配有视频讲解。本书配有实验和辅导教材《C#程序设计实验指导与习题测试(第3版)》,提供了大量的思考与实践练习,让读者从实践中巩固和应用所学的知识。 本书可作为高等学校计算机程序设计教程,同时也可作为广大程序设计开发者、爱好者的自学参考书。
|
目錄:
|
第1部分 C#面向对象程序设计语言的基础知识第1章 C#语言介绍31.1 C#语言概述31.1.1 C#语言简介31.1.2 C#语言各版本的演变历史41.1.3 C#特点和开发应用范围41.2 C#语言的编译和运行环境51.2.1 C#语言与.NET Framework51.2.2 C#的运行环境61.2.3 C#的开发环境71.2.4 Visual Studio集成开发环境71.3 使用记事本创建简单的C#程序81.3.1 Hello World程序81.3.2 代码分析91.3.3 编译和运行结果91.4 基于集成开发环境创建简单的C#程序101.4.1 创建Visual C#控制台应用程序101.4.2 编辑Visual C#源代码文件111.4.3 编译和运行调试程序111.5 基于C#交互窗口测试C#代码片段121.5.1 C#交互窗口概述121.5.2 C#交互窗口使用示例121.6 C#程序的结构和书写规则131.6.1 C#程序的基本结构131.6.2 C#程序的书写规则141.7 类型的声明和使用141.7.1 类的声明141.7.2 对象的创建和使用151.8 命名空间161.8.1 定义命名空间161.8.2 访问命名空间161.8.3 命名空间别名171.8.4 全局命名空间181.8.5 命名空间举例191.8.6 外部别名201.9 注释211.9.1 单行注释211.9.2 多行注释211.9.3 内联注释211.9.4 XML文档注释211.10 Main方法22 1.10.1 Main方法概述22 1.10.2 Main方法声明23 1.10.3 命令行参数24 1.10.4 Main返回值261.11 控制台输入和输出28 1.11.1 System.Console类概述28 1.11.2 控制台输入输出28 1.11.3 格式化输出29第2章 数据类型、变量和常量312.1 标识符及其命名规则312.1.1 标识符312.1.2 保留关键字312.1.3 命名约定322.2 变量322.2.1 变量的分类322.2.2 变量的声明322.2.3 变量的赋值和引用332.2.4 变量的作用域342.2.5 ref局部变量(C# 7.0)352.3 常量352.3.1 文本常量352.3.2 用户声明常量362.4 数据类型362.4.1 类型系统372.4.2 值类型372.4.3 引用类型372.4.4 装箱和拆箱382.4.5 预定义数据类型392.5 整型数据类型392.5.1 预定义整数类型392.5.2 整数类型的主要成员402.5.3 整型常量402.5.4 整型变量的声明和使用412.6 浮点型数据类型422.6.1 浮点类型422.6.2 浮点类型的主要成员422.6.3 浮点数类型常量422.6.4 浮点变量的声明和使用432.6.5 浮点数舍入误差432.7 decimal数据类型442.7.1 decimal类型442.7.2 System.Decimal的主要成员442.7.3 decimal常量452.7.4 decimal变量的声明和使用452.8 布尔数据类型452.8.1 bool类型452.8.2 System.Boolean的主要成员462.8.3 布尔变量的声明和使用462.9 字符数据类型472.9.1 字符类型472.9.2 System.Char类成员472.9.3 字符常量472.9.4 字符变量的声明和使用482.10 可以为null的类型492.11 string数据类型50 2.11.1 字符串的表示50 2.11.2 内插字符串512.12 object类型522.13 隐式类型522.14 类型转换53 2.14.1 隐式转换53 2.14.2 显式转换54 2.14.3 Convert类提供的类型转换方法55 2.14.4 溢出检查和checked关键字562.15 元组57 2.15.1 元组概述57 2.15.2 使用元组字面量创建元组对象58 2.15.3 访问元组对象的元素58 2.15.4 使用Tuple类创建元组对象58 2.15.5 元组对象的解构592.16 临时虚拟变量(Discard)59第3章 语句、运算符和表达式603.1 语句603.1.1 C#语句的组成603.1.2 C#语句的示例613.1.3 C#语句的使用643.2 运算符653.2.1 算术运算符653.2.2 关系和类型测试运算符673.2.3 逻辑运算符683.2.4 赋值运算符703.2.5 字符串运算符723.2.6 位运算符723.2.7 条件运算符743.2.8 null相关运算符743.2.9 其他运算符753.2.10 运算符优先级763.3 表达式783.3.1 表达式的组成783.3.2 表达式的书写规则783.3.3 表达式的示例78第4章 程序流程和异常处理804.1 顺序结构804.2 选择结构814.2.1 if语句814.2.2 switch语句884.2.3 模式匹配(C# 7.0)904.3 循环结构924.3.1 for循环924.3.2 while循环944.3.3 dowhile循环964.3.4 foreach循环984.3.5 循环的嵌套994.4 跳转语句1004.4.1 goto语句1004.4.2 break语句1014.4.3 continue语句1014.4.4 return语句1024.5 异常处理1034.5.1 错误和异常1034.5.2 异常处理概述1034.5.3 内置的异常类1054.5.4 自定义异常类1054.5.5 引发异常1064.5.6 捕获处理异常trycatchfinally1084.5.7 异常过滤器110第5章 数组和指针1115.1 数组1115.1.1 一维数组1135.1.2 多维数组1155.1.3 交错数组1185.1.4 数组的基本操作和排序1215.1.5 作为对象的数组1275.2 不安全代码和指针1295.2.1 不安全代码1295.2.2 指针130第6章 类和对象1366.1 面向对象概念1366.1.1 对象的定义1366.1.2 封装1366.1.3 继承1376.1.4 多态性1376.2 类的声明1376.2.1 声明类的基本语法1386.2.2 类的访问修饰符1396.3 创建和使用对象1406.3.1 对象的创建和使用1406.3.2 对象初始值设定项1416.4 分部类1426.4.1 分部类的声明1426.4.2 分部类的应用1446.5 System.Object类和通用方法1456.5.1 System.Object类1456.5.2 System.Object类的通用方法1456.5.3 对象的比较1466.6 对象的生命周期1486.6.1 对象的创建1486.6.2 对象的使用1486.6.3 对象的销毁149第7章 类成员1507.1 类的成员概述1507.1.1 类成员分类1507.1.2 数据成员和函数成员1517.1.3 静态成员和实例成员1517.1.4 this关键字1537.1.5 类成员的访问修饰符1547.2 字段和常量1557.2.1 字段的声明和访问1557.2.2 实例字段和静态字段1567.2.3 常量字段1567.2.4 只读字段1577.2.5 可变字段1597.3 方法1607.3.1 方法的声明和调用1607.3.2 基于表达式声明方法(C# 6.0)1617.3.3 参数的传递1627.3.4 引用返回(C# 7.0)1677.3.5 方法的重载1687.3.6 实例方法和静态方法1697.3.7 分部方法1717.3.8 外部方法1727.3.9 递归方法1737.3.10 迭代器方法1737.3.11 迭代器对象1747.3.12 局部方法(C# 7.0)1757.4 属性1767.4.1 属性的声明和访问1767.4.2 实例属性和静态属性1787.4.3 只读属性和只写属性1787.4.4 基于表达式的只读属性(C# 6.0)1787.4.5 自动实现的属性1787.4.6 属性初始化(C# 6.0)1797.4.7 基于表达式的属性访问器(C# 7.0)1797.5 索引器1807.5.1 索引器的声明和访问1807.5.2 索引器的重载1827.6 运算符重载1837.6.1 运算符重载1837.6.2 转换运算符1847.7 构造函数1867.7.1 实例构造函数1867.7.2 私有构造函数1887.7.3 静态构造函数1897.7.4 构造函数的重载1907.8 析构函数1907.9 嵌套类1927.9.1 嵌套类的声明1927.9.2 嵌套类和包含类的关系1937.9.3 嵌套类的访问195第8章 继承和多态1978.1 继承和多态的基本概念1978.1.1 继承和多态1978.1.2 继承的类型1978.1.3 继承的层次关系1988.2 继承1988.2.1 派生类1988.2.2 base关键字1998.2.3 构造函数的调用2008.2.4 类成员的继承2028.2.5 类成员的隐藏2048.2.6 虚方法和隐藏方法2058.2.7 虚方法和重写方法2058.3 抽象类和抽象方法2078.3.1 抽象类2078.3.2 抽象方法2088.4 密封类和密封方法2108.4.1 密封类2108.4.2 密封方法2108.5 接口2118.5.1 接口声明2118.5.2 接口成员2128.5.3 接口实现2138.5.4 分部接口2158.5.5 接口继承2158.6 多态2178.6.1 多态的概念2178.6.2 通过继承实现多态性2178.6.3 通过方法重载实现多态性2208.6.4 通过方法重写实现多态性2218.6.5 多态性综合举例222第9章 委托和事件2249.1 委托2249.1.1 委托的声明2249.1.2 委托的实例化和调用2259.1.3 匿名方法委托2289.1.4 多播委托2299.1.5 委托的异步调用2319.1.6 委托的兼容性2329.2 事件2339.2.1 事件处理机制2339.2.2 事件的声明和引发2359.2.3 事件的订阅和取消2369.2.4 静态事件和实例事件2379.2.5 .NET Framework事件模型2379.2.6 综合举例:事件实现的步骤238第10章 结构和枚举24010.1 结构24010.1.1 结构概述24010.1.2 结构的声明24110.1.3 结构的调用24210.1.4 分部结构24310.1.5 结构成员24310.1.6 嵌套结构24310.2 枚举24510.2.1 枚举概述24510.2.2 枚举声明24510.2.3 枚举的使用24710.2.4 Flags枚举24810.2.5 枚举的运算和操作249第11章 泛型25211.1 泛型的基本概念25211.1.1 引例ArrayList25211.1.2 引例List25311.1.3 泛型的概念25311.2 泛型的定义25411.2.1 泛型的简单定义25411.2.2 开放式泛型类型和封闭式泛型类型25511.2.3 泛型类型参数25511.2.4 泛型类型参数的约束25611.3 泛型类25711.3.1 泛型类的声明和使用25711.3.2 泛型类的继承规则25811.4 泛型接口25911.4.1 泛型接口的声明和使用25911.4.2 泛型接口的继承和实现规则26011.5 泛型结构26011.6 泛型方法26111.6.1 泛型方法的声明和使用26111.6.2 泛型方法的设计规则26211.7 泛型委托和泛型事件26311.7.1 泛型委托26311.7.2 泛型事件26411.7.3 Func和Action泛型委托26511.8 default关键字26611.9 协变和逆变26611.9.1 泛型类型转换26611.9.2 泛型委托的协变和逆变26811.9.3 泛型接口的协变和逆变269第12章 特性27112.1 特性概述27112.2 特性的使用27212.3 预定义通用特性类27312.3.1 ConditionalAttribute类27312.3.2 ObsoleteAttribute类27512.3.3 AttributeUsageAttribute类27612.3.4 调用方信息特性类27712.3.5 全局特性27812.4 自定义特性类27912.5 使用反射访问特性280第13章 语言集成查询28213.1 相关语言要素28213.1.1 初始值设定项28213.1.2 匿名类型28313.1.3 Lambda表达式(匿名函数)28313.1.4 扩展方法28413.2 LINQ基本操作28613.2.1 LINQ基本概念28613.2.2 LINQ查询操作概述28613.2.3 获取数据源28713.2.4 创建查询28813.2.5 执行查询28813.3 标准查询运算符28913.3.1 数据排序28913.3.2 数据筛选29113.3.3 数据投影29113.3.4 数据分组29113.3.5 联接运算29213.3.6 数据分区29513.3.7 限定运算29513.3.8 聚合运算29613.3.9 集合运算29613.3.10 生成运算29713.3.11 元素操作29713.3.12 串联运算29813.3.13 相等运算29813.3.14 数据类型转换29913.4 LINQ to Objects30013.4.1 LINQ to Objects概述30013.4.2 LINQ和字符串30013.4.3 LINQ和文件目录305第14章 线程、并行和异步处理30914.1 线程处理概述30914.1.1 进程和线程30914.1.2 线程的优缺点31014.2 创建多线程应用程序31014.2.1 C#应用程序主线程31014.2.2 创建和启动新线程31114.3 线程和生命周期31214.3.1 线程和生命周期的状态31214.3.2 Thread类31314.3.3 线程的启动、终止、挂起和唤醒31414.3.4 休眠(暂停)线程Sleep31514.3.5 线程让步Yield31514.3.6 线程加入Join31614.3.7 线程中断Interrupt31614.3.8 线程终止销毁Abort31714.4 前台线程和后台线程31814.5 线程优先级和线程调度31914.6 线程同步和通信32114.6.1 线程同步处理32114.6.2 使用lock语句同步代码块32114.6.3 使用监视器同步代码块32214.6.4 使用MethodImplAttribute特性实现方法同步处理32314.6.5 使用SynchronizationAttribute特性实现类同步处理32314.6.6 同步事件和等待句柄32314.6.7 使用Mutex同步代码块32414.7 线程池32514.7.1 线程池的基本概念32514.7.2 创建和使用线程池32614.8 定时器Timer32714.9 并行处理32814.9.1 任务并行库32814.9.2 隐式创建和运行任务32814.9.3 显式创建和运行任务32914.9.4 任务的交互操作33014.9.5 从任务中返回值33114.9.6 数据并行处理33114.10 异步处理332 14.10.1 委托的异步调用332 14.10.2 async和await关键字33414.11 绑定335 14.11.1 静态绑定和动态绑定335 14.11.2 动态语言运行时335 14.11.3 自定义绑定336 14.11.4 语言绑定336 14.11.5 dynamic类型337第2部分 .NET Framework类库基本应用第15章 数值、日期和字符串处理34115.1 数学函数34115.1.1 Math类和数学函数34115.1.2 Random类和随机函数34415.2 日期和时间处理34615.2.1 DateTime结构34615.2.2 TimeSpan结构34815.2.3 日期格式化字符串34915.3 字符串处理34915.3.1 String类34915.3.2 StringBuilder类35415.3.3 字符编码35715.4 正则表达式35815.4.1 正则表达式语言35815.4.2 正则表达式类36115.4.3 正则表达式示例361第16章 文件和流输入输出36416.1 文件和流操作概述36416.2 磁盘、目录和文件的基本操作36516.2.1 磁盘的基本操作36516.2.2 目录的基本操作36616.2.3 文件的基本操作36716.3 文本文件的写入和读取37016.3.1 文本文件的写入(StreamWriter类)37016.3.2 文本文件的读取(StreamReader类)37116.4 二进制文件的写入和读取37216.4.1 二进制文件的写入(BinaryWriter类)37216.4.2 二进制文件的读取(BinaryReader类)37316.5 随机文件访问37416.6 通用IO流类376第17章 集合和数据结构37717.1 C#集合和数据结构概述37717.2 列表类集合类型37917.2.1 数组列表ArrayList37917.2.2 列表List38017.2.3 双向链表LinkedList38117.3 字典类集合类型38217.3.1 哈希表Hashtable38317.3.2 字典Dictionary38417.3.3 排序列表SortedList38517.3.4 泛型排序列表SortedList38717.3.5 排序字典SortedDictionary38817.4 队列集合类型(Queue)38917.5 堆栈集合类型(Stack)39117.6 散列集集合类型(HashSet)39217.7 位集合39417.8 专用集合395第18章 数据库访问39618.1 ADO.NET概述39618.1.1 ADO.NET的基本概念39618.1.2 ADO.NET的结构39618.1.3 .NET Framework数据提供程序39718.1.4 ADO.NET DataSet39818.2 使用ADO.NET连接和操作数据库39918.2.1 使用数据提供程序访问数据库的步骤39918.2.2 范例数据库Northwnd.mdf40118.2.3 查询数据库表数据40318.2.4 插入数据库表数据40418.2.5 更新数据库表数据40518.2.6 删除数据库表数据40518.2.7 使用存储过程访问数据库40618.3 使用DataAdapter和DataSet访问数据库40818.3.1 使用DataAdapter和DataSet访问数据库的步骤40818.3.2 查询数据库表数据40918.3.3 维护数据库表数据410第3部分 C#应用程序开发第19章 Windows窗体应用程序41519.1 开发Windows窗体应用程序41519.1.1 Windows窗体应用程序概述41519.1.2 创建Windows窗体应用程序的一般步骤41719.1.3 窗体和控件概述42019.2 常用的Windows窗体控件42019.2.1 标签、文本框和命令按钮42019.2.2 单选按钮、复选框和分组42219.2.3 列表选择控件42419.2.4 图形存储和显示控件42719.2.5 Timer控件43019.3 通用对话框43119.3.1 OpenFileDialog对话框43219.3.2 SaveFileDialog对话框43219.3.3 通用对话框应用举例43319.3.4 FontDialog对话框43519.4 菜单和工具栏43519.4.1 MenuStrip控件43519.4.2 ContextMenuStrip控件43519.4.3 ToolStrip控件43619.4.4 菜单和工具栏应用举例43619.5 多重窗体43819.5.1 添加新窗体43819.5.2 调用其他窗体43819.5.3 多重窗体应用举例43919.6 多文档界面44019.6.1 创建MDI父窗体44019.6.2 创建MDI子窗体44019.6.3 处理MDI子窗体44119.7 图形绘制44119.7.1 GDI 图形绘制概述44119.7.2 绘制字符串44319.7.3 绘制图形443第20章 WPF应用程序44820.1 WPF应用程序概述44820.1.1 WPF简介44820.1.2 WPF应用程序的构成44820.2 创建WPF应用程序45220.2.1 创建简单的WPF应用程序45220.2.2 WPF应用程序布局45320.2.3 WPF应用程序常用控件45620.3 WPF应用程序与图形和多媒体46020.3.1 图形和多媒体概述46020.3.2 图形、图像、画笔和位图效果46120.3.3 多媒体46920.3.4 动画472第21章 ASP.NET Web应用程序47521.1 开发ASP.NET Web应用程序47521.1.1 ASP.NET Web应用程序概述47521.1.2 创建ASP.NET Web应用程序47621.2 ASP.NET Web页面47721.2.1 ASP.NET Web页面概述47721.2.2 创建ASP.NET页面47821.3 ASP.NET Web服务器控件48021.3.1 ASP.NET Web服务器控件概述48021.3.2 使用标准服务器控件创建Web页面48121.4 验证服务器控件48421.4.1 验证服务器控件概述48421.4.2 使用验证服务器控件创建Web页面48421.5 数据服务器控件48721.5.1 数据服务器控件概述48721.5.2 使用数据服务器控件创建Web页面48721.6 使用ADO.NET连接和操作数据库49021.7 ASP.NET页面会话状态和页面导航49121.7.1 ASP.NET Web应用程序上下文49121.7.2 ASP.NET Web应用程序事件49321.7.3 ASP.NET Web页面导航49521.8 ASP.NET Web应用程序的布局和导航49621.8.1 ASP.NET Web母版页49621.8.2 ASP.NET Web导航控件49721.8.3 应用举例:设计ASP.NET Web站点49821.9 ASP.NET主题和外观50221.9.1 ASP.NET主题和外观概述50221.9.2 定义主题50321.9.3 定义外观50321.9.4 定义CSS样式50321.9.5 在页面中使用主题50521.9.6 应用举例:使用ASP.NET主题和外观自定义Web站点506第22章 综合应用案例50922.1 多窗口文本编辑器系统设计50922.1.1 系统基本功能50922.1.2 功能模块设计50922.1.3 系统的实现50922.2 ASP.NET网上书店系统的设计51422.2.1 系统总体设计51422.2.2 数据库设计51422.2.3 功能模块设计51522.2.4 系统的实现516附录A .NET Framework和.NET Core概述528A1 .NET Framework的概念528A1.1 公共语言运行时528A1.2 .NET Framework类库528A2 .NET Framework的功能特点529A3 .NET Framework环境529A4 .NET Framework的主要版本530A5 .NET Core530A5.1 .NET Core概述530A5.2 .NET Core组成530A5.3 .NET Core与.NET Framework比较530A5.4 .NET Core与Mono比较531附录B C#编译器和预处理器指令532B1 C#编译器概述532B2 C#编译器选项532B3 C#预处理器指令534
附录C Visual Studio快速入门537C1 集成开发环境(IDE)界面537C2 创建解决方案和项目537C3 设计器编辑器539C4 生成和调试工具540C5 安装和部署工具541C6 帮助系统541附录D C#关键字和上下文关键字542D1 关键字542D2 上下文关键字544附录E 格式化字符串546E1 复合格式设置546E2 复合格式字符串546E3 数字格式字符串547E4 标准日期和时间格式字符串549附录F XML文档注释553附录G ASCII码表557附录H 程序集、应用程序域和反射558H1 程序集558H1.1 程序集概述558H1.2 创建程序集558H2 应用程序域558H2.1 应用程序域概述558H2.2 创建应用程序域559H3 反射559H3.1 反射概述559H3.2 查看类型信息560H3.3 动态加载和使用类型561参考文献562
|
內容試閱:
|
程序设计是大专院校计算机、电子信息、工商管理等相关专业的必修课程,C#语言作为一门新的程序设计语言,集中了C、C、Java等语言的优点,是一门现代的、优越的、具有广阔发展前景的程序设计语言。本书内容共分为3部分,第1部分详细阐述C#面向对象程序设计语言的基础知识,包括C#语言概述、C#语言基础、面向对象编程、结构、枚举、泛型、特性、语言集成查询、多线程编程技术;第2部分阐述基于.NET Framework公共类库的基本应用,包括数值、日期和字符串处理、文件和流输入输出、集合和数据结构、数据库访问;第3部分介绍C#应用程序开发技术,包括Windows窗体应用程序、WPF应用程序、ASP.NET Web应用程序设计。本书配套教材《C#程序设计实验指导与习题测试(第3版)》,提供本书的上机实验指导,以及本书各章节的习题测试和习题参考解答。本书特点:(1)内容由浅入深,循序渐进,重点突出,通俗易学。(2)理论与实践相结合,通过大量的实例,阐述程序设计的基本原理,使读者不仅掌握理论知识,同时掌握大量程序设计的实用案例。(3)提供了大量的思考与实践练习,让读者从实践中巩固和应用所学的知识。(4)每个知识点都配套了微课视频讲解。本教材涉及的各章节所有的源程序代码和相关素材,以及供教师参考的教学电子文稿均可以通过扫描封底课件二维码下载。本书由华东师范大学江红和余青松编著,第1~第13章由江红编写,第14~第22章以及附录由余青松编写。由于时间和编者学识有限,书中不足之处在所难免,敬请诸位同行、专家和读者指正。编 者 2018年5月
|
|