C#图解教程 第5版

您所在的位置:网站首页 果蝇吸血过程图解视频教程 C#图解教程 第5版

C#图解教程 第5版

2024-07-11 03:07:09| 来源: 网络整理| 查看: 265

链接:pan.baidu.com/s/1BOns08n5GfkqwXAWrfyc0g?pwd=rp14 

提取码:rp14

·长销十余年、数万读者认可的C#入门经典教程·全面涵盖C# 6.0和C# 7.0的新增特性本书是经典的C#入门书,一版再版,全面讲授了C#编程语言的基础知识和工作原理。作者使用简洁的文字描述,辅以清晰易懂的图示,来解释C#中的重要概念,使得每一个知识点既直观明了又易于记忆。这一版补充介绍了C#新的语言特性以及.NET Core。

本书是高效掌握和透彻理解C#语言的****!

内容简介

本书是广受赞誉的《C# 图解教程》的*新版本。作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式、朴实简洁的文字,并辅以大量表格和代码示例,全面、直观地阐述了C# 语言的各种特性。新版本除了精心修订旧版内容外,还全面涵盖了C# 6.0 和C# 7.0 的新增特性,比如局部函数、throw 表达式、name of 和空条件运算符、using static 指令、异常过滤器,等等。通过本书,读者能够快速、深入地理解C#,为自己的编程生涯打下良好的基础。

作者简介

丹尼尔·索利斯(Daniel Solis)

拥有20余年软件开发经验,微软、IBM等公司技术顾问。他不仅是深受读者爱戴和推崇的技术图书作家,而且也是享誉世界的技术培训专家,在美国和欧洲各地传授编程语言、Windows程序设计和Unix底层技术的经验和心得。

卡尔·施罗坦博尔(Cal Schrotenboer)

拥有20余年软件开发经验,精通C#,一直从事企业级软件开发。近十年来他还在加州的一些社区大学教授.NET相关课程。

目录

第 1 章 C#和.NET 框架    11.1 在.NET 之前 11.1.1 20 世纪90 年代末的Windows编程 11.1.2 下一代平台服务的目标 21.2 .NET 时代 21.2.1 .NET 框架的组成 21.2.2 大大改进的编程环境 31.3 编译成CIL 51.4 编译成本机代码并执行 61.5 CLR 71.6 CLI 81.7 各种缩写 91.8 C#的演化 91.9 C#和Windows 的演化 10第 2 章 C#和.NET Core 112.1 .NET 框架的背景 112.2 为什么选择.NET Core(和Xamarin) 112.3 .NET Core 的目标 122.4 多平台支持 132.5 快速发展和升级 132.6 程序占用空间小、部署简单、版本问题少 132.7 开源社区支持 142.8 改进的应用程序性能 142.9 全新的开始 142.10 .NET Core 的发展 152.11 .NET 框架的未来 152.12 Xamarin 的适用之处 15第3 章 C#编程概述 163.1 一个简单的C#程序 163.2 标识符 183.3 关键字 183.4 Main:程序的起始点 193.5 空白 193.6 语句 203.7 从程序中输出文本 213.7.1 Write 213.7.2 WriteLine 213.7.3 格式字符串 223.7.4 多重标记和值 233.7.5 格式化数字字符串 243.8 注释:为代码添加注解 283.8.1 关于注释的更多内容 283.8.2 文档注释 293.8.3 注释类型总结 29第4 章 类型、存储和变量 304.1 C#程序是一组类型声明 304.2 类型是一种模板 314.3 实例化类型 314.4 数据成员和函数成员 324.5 预定义类型 334.6 用户定义类型 344.7 栈和堆 354.7.1 栈 354.7.2 堆 364.8 值类型和引用类型 374.8.1 存储引用类型对象的成员 384.8.2 C#类型的分类 384.9 变量 394.9.1 变量声明 394.9.2 多变量声明 414.9.3 使用变量的值 414.10 静态类型和dynamic 关键字 414.11 可空类型 42第5 章 类的基本概念 435.1 类的概述 435.2 程序和类:一个简单的示例 445.3 声明类 455.4 类成员 455.4.1 字段 455.4.2 方法 475.5 创建变量和类的实例 485.6 为数据分配内存 485.7 实例成员 495.8 访问修饰符 505.9 从类的内部访问成员 525.10 从类的外部访问成员 535.11 综合应用 54第6 章 方法 566.1 方法的结构 566.2 方法体内部的代码执行 576.3 局部变量 586.3.1 类型推断和var 关键字 596.3.2 嵌套块中的局部变量 596.4 局部常量 606.5 控制流 616.6 方法调用 626.7 返回值 636.8 返回语句和void 方法 646.9 局部函数 666.10 参数 666.10.1 形参 676.10.2 实参 676.11 值参数 696.12 引用参数 716.13 引用类型作为值参数和引用参数 736.14 输出参数 766.15 参数数组 796.15.1 方法调用 806.15.2 将数组作为实参 826.16 参数类型总结 836.17 ref 局部变量和ref 返回 836.18 方法重载 866.19 命名参数 876.20 可选参数 886.21 栈帧 916.22 递归 93第7 章 深入理解类 957.1 类成员 957.2 成员修饰符的顺序 967.3 实例类成员 977.4 静态字段 987.5 从类的外部访问静态成员 987.5.1 静态字段示例 997.5.2 静态成员的生存期 1007.6 静态函数成员 1017.7 其他静态类成员类型 1027.8 成员常量 1027.9 常量与静态量 1037.10 属性 1037.10.1 属性声明和访问器 1047.10.2 属性示例 1057.10.3 使用属性 1067.10.4 属性和关联字段 1067.10.5 执行其他计算 1077.10.6 只读和只写属性 1087.10.7 属性与公有字段 1097.10.8 计算只读属性示例 1097.10.9 自动实现属性 1107.10.10 静态属性 1117.11 实例构造函数 1127.11.1 带参数的构造函数 1137.11.2 默认构造函数 1147.12 静态构造函数 1147.13 对象初始化语句 1167.14 析构函数 1177.15 readonly 修饰符 1177.16 this 关键字 1187.17 索引器 1197.17.1 什么是索引器 1207.17.2 索引器和属性 1207.17.3 声明索引器 1217.17.4 索引器的set 访问器 1227.17.5 索引器的get 访问器 1227.17.6 关于索引器的更多内容 1237.17.7 为Employee 示例声明索引器 1237.17.8 另一个索引器示例 1247.17.9 索引器重载 1257.18 访问器的访问修饰符 1267.19 分部类和分部类型 1277.20 分部方法 128第8 章 类和继承 1308.1 类继承 1308.2 访问继承的成员 1318.3 所有类都派生自object 类 1328.4 屏蔽基类的成员 1338.5 基类访问 1358.6 使用基类的引用 1358.6.1 虚方法和覆写方法 1378.6.2 覆写标记为override 的方法 1398.6.3 覆盖其他成员类型 1428.7 构造函数的执行 1428.7.1 构造函数初始化语句 1448.7.2 类访问修饰符 1458.8 程序集间的继承 1468.9 成员访问修饰符 1488.9.1 访问成员的区域 1498.9.2 公有成员的可访问性 1508.9.3 私有成员的可访问性 1508.9.4 受保护成员的可访问性 1508.9.5 内部成员的可访问性 1518.9.6 受保护内部成员的可访问性 1518.9.7 成员访问修饰符小结 1528.10 抽象成员 1538.11 抽象类 1548.11.1 抽象类和抽象方法的示例 1548.11.2 抽象类的另一个例子 1558.12 密封类 1568.13 静态类 1568.14 扩展方法 1578.15 命名约定 160第9 章 表达式和运算符 1629.1 表达式 1629.2 字面量 1639.2.1 整数字面量 1649.2.2 实数字面量 1659.2.3 字符字面量 1669.2.4 字符串字面量 1679.3 求值顺序 1689.3.1 优先级 1689.3.2 结合性 1699.4 简单算术运算符 1709.5 求余运算符 1709.6 关系比较运算符和相等比较运算符 1719.7 递增运算符和递减运算符 1739.8 条件逻辑运算符 1749.9 逻辑运算符 1759.10 移位运算符 1769.11 赋值运算符 1789.12 条件运算符 1799.13 一元算术运算符 1819.14 用户定义的类型转换 1819.15 运算符重载 1849.15.1 运算符重载的示例 1859.15.2 运算符重载的限制 1869.16 typeof 运算符 1899.17 nameof 运算符 1909.18 其他运算符 191第 10 章 语句 19210.1 什么是语句 19210.2 表达式语句 19310.3 控制流语句 19410.4 if 语句 19410.5 if else 语句 19510.6 while 循环 19610.7 do 循环 19710.8 for 循环 19810.8.1 for 语句中变量的作用域 20010.8.2 初始化和迭代表达式中的多表达式 20010.9 switch 语句 20110.9.1 分支示例 20310.9.2 其他类型的模式表达式 20310.9.3 switch 语句的补充 20510.9.4 分支标签 20610.10 跳转语句 20710.11 break 语句 20710.12 continue 语句 20810.13 标签语句 20910.13.1 标签 20910.13.2 标签语句的作用域 20910.14 goto 语句 21010.15 using 语句 21110.15.1 包装资源的使用 21210.15.2 using 语句的示例 21210.15.3 多个资源和嵌套 21310.15.4 using 语句的另一种形式 21410.16 其他语句 215第 11 章 结构 21611.1 什么是结构 21611.2 结构是值类型 21711.3 对结构赋值 21811.4 构造函数和析构函数 21911.4.1 实例构造函数 21911.4.2 静态构造函数 22011.4.3 构造函数和析构函数小结 22111.5 属性和字段初始化语句 22111.6 结构是密封的 22111.7 装箱和拆箱 22211.8 结构作为返回值和参数 22211.9 关于结构的更多内容 222第 12 章 枚举 22312.1 枚举 22312.1.1 设置底层类型和显式值 22512.1.2 隐式成员编号 22512.2 位标志 22612.2.1 Flags 特性 22912.2.2 使用位标志的示例 23012.3 关于枚举的更多内容 231第 13 章 数组 23413.1 数组 23413.1.1 定义 23413.1.2 重要细节 23513.2 数组的类型 23513.3 数组是对象 23613.4 一维数组和矩形数组 23713.5 实例化一维数组或矩形数组 23813.6 访问数组元素 23813.7 初始化数组 23913.7.1 显式初始化一维数组 24013.7.2 显式初始化矩形数组 24013.7.3 初始化矩形数组的语法点 24113.7.4 快捷语法 24113.7.5 隐式类型数组 24113.7.6 综合内容 24213.8 交错数组 24213.8.1 声明交错数组 24313.8.2 快捷实例化 24313.8.3 实例化交错数组 24413.8.4 交错数组中的子数组 24513.9 比较矩形数组和交错数组 24613.10 foreach 语句 24713.10.1 迭代变量是只读的 24813.10.2 foreach 语句和多维数组 24913.11 数组协变 25013.12 数组继承的有用成员 25113.13 比较数组类型 25413.14 数组与ref 返回和ref 局部变量 255第 14 章 委托 25614.1 什么是委托 25614.2 委托概述 25814.3 声明委托类型 25914.4 创建委托对象 26014.5 给委托赋值 26114.6 组合委托 26214.7 为委托添加方法 26214.8 从委托移除方法 26314.9 调用委托 26314.10 委托的示例 26414.11 调用带返回值的委托 26514.12 调用带引用参数的委托 26614.13 匿名方法 26714.13.1 使用匿名方法 26814.13.2 匿名方法的语法 26814.13.3 变量和参数的作用域 27014.14 Lambda 表达式 271第 15 章 事件 27415.1 发布者和订阅者 27415.2 源代码组件概览 27615.3 声明事件 27615.4 订阅事件 27715.5 触发事件 27815.6 标准事件的用法 28015.6.1 通过扩展EventArgs 来传递数据 28115.6.2 移除事件处理程序 28315.7 事件访问器 284第 16 章 接口 28616.1 什么是接口 28616.2 声明接口 29116.3 实现接口 29216.4 接口是引用类型 29416.5 接口和as 运算符 29516.6 实现多个接口 29516.7 实现具有重复成员的接口 29616.8 多个接口的引用 29816.9 派生成员作为实现 29916.10 显式接口成员实现 30016.11 接口可以继承接口 30216.12 不同类实现一个接口的示例 303第 17 章 转换 30517.1 什么是转换 30517.2 隐式转换 30617.3 显式转换和强制转换 30717.4 转换的类型 30817.5 数字的转换 30917.5.1 隐式数字转换 30917.5.2 溢出检测上下文 31017.5.3 显式数字转换 31117.6 引用转换 31517.6.1 隐式引用转换 31617.6.2 显式引用转换 31717.6.3 有效显式引用转换 31817.7 装箱转换 31817.7.1 装箱是创建副本 31917.7.2 装箱转换 32017.8 拆箱转换 32017.9 用户自定义转换 32117.9.1 用户自定义转换的约束 32217.9.2 用户自定义转换的示例 32217.9.3 评估用户自定义转换 32317.9.4 多步用户自定义转换的示例 32417.10 is 运算符 32517.11 as 运算符 326第 18 章 泛型 32718.1 什么是泛型 32718.2 C#中的泛型 32918.3 泛型类 33018.3.1 声明泛型类 33118.3.2 创建构造类型 33118.3.3 创建变量和实例 33218.3.4 使用泛型的栈的示例 33318.3.5 比较泛型和非泛型栈 33418.4 类型参数的约束 33518.4.1 Where 子句 33618.4.2 约束类型和次序 33718.5 泛型方法 33718.5.1 声明泛型方法 33818.5.2 调用泛型方法 33818.5.3 泛型方法的示例 33918.6 扩展方法和泛型类 34018.7 泛型结构 34118.8 泛型委托 34218.9 泛型接口 34418.9.1 使用泛型接口的示例 34518.9.2 泛型接口的实现必须唯一 34518.10 协变和逆变 34618.10.1 协变 34618.10.2 逆变 34918.10.3 协变和逆变的不同 35018.10.4 接口的协变和逆变 35118.10.5 关于可变性的更多内容 352第 19 章 枚举器和迭代器 35419.1 枚举器和可枚举类型 35419.2 IEnumerator 接口 35619.3 IEnumerable 接口 35819.4 泛型枚举接口 36019.5 迭代器 36219.5.1 迭代器块 36219.5.2 使用迭代器来创建枚举器 36319.5.3 使用迭代器来创建可枚举类型 36519.6 常见迭代器模式 36619.7 产生多个可枚举类型 36719.8 将迭代器作为属性 36819.9 迭代器的实质 369第 20 章 LINQ 37120.1 什么是LINQ 37120.2 LINQ 提供程序 37220.3 方法语法和查询语法 37420.4 查询变量 37520.5 查询表达式的结构 37620.5.1 from 子句 37720.5.2 join 子句 37820.5.3 什么是联结 37920.5.4 查询主体中的from let where 片段 38120.5.5 orderby 子句 38420.5.6 select group 子句 38520.5.7 查询中的匿名类型 38620.5.8 group 子句 38720.5.9 查询延续:into 子句 38820.6 标准查询运算符 38920.6.1 标准查询运算符的签名 39220.6.2 查询表达式和标准查询运算符 39320.6.3 将委托作为参数 39420.6.4 LINQ 预定义的委托类型 39520.6.5 使用委托参数的示例 39620.6.6 使用Lambda 表达式参数的示例 39720.7 LINQ to XML 39820.7.1 标记语言 39820.7.2 XML 基础 39820.7.3 XML 类 40020.7.4 使用XML 特性 40620.7.5 其他类型的节点 40820.7.6 使用LINQ to XML 的LINQ 查询 409第 21 章 异步编程 41221.1 什么是异步 41221.2 async/await 特性的结构 41621.3 什么是异步方法 41721.3.1 异步方法的控制流 42121.3.2 取消一个异步操作 42721.3.3 在调用方法中同步地等待任务 43021.3.4 在异步方法中异步地等待任务 43321.3.5 Task.Delay 方法 43521.4 GUI 程序中的异步操作 43621.5 使用异步Lambda 表达式 44021.6 完整的GUI 程序 44121.7 BackgroundWorker 类 44321.8 并行循环 44721.9 其他异步编程模式 45021.10 BeginInvoke 和EndInvoke 45121.10.1 等待直到完成模式 45221.10.2 AsyncResult 类 45321.10.3 轮询模式 45421.10.4 回调模式 45521.11 计时器 458第 22 章 命名空间和程序集 46022.1 引用其他程序集 46022.2 命名空间 46422.2.1 命名空间名称 46722.2.2 命名空间的补充 46722.2.3 命名空间跨文件伸展 46822.2.4 嵌套命名空间 46922.3 using 指令 47022.3.1 using 命名空间指令 47022.3.2 using 别名指令 47122.3.3 using static 指令 47122.4 程序集的结构 47222.5 程序集标识符 47322.6 强命名程序集 47422.7 私有程序集的部署 47522.8 共享程序集和GAC 47622.8.1 把程序集安装到GAC 47622.8.2 GAC 内的并肩执行 47722.9 配置文件 47722.10 延迟签名 478第 23 章 异常 48023.1 什么是异常 48023.2 try 语句 48123.3 异常类 48223.4 catch 子句 48323.5 异常过滤器 48523.6 catch 子句段 48523.7 finally 块 48623.8 为异常寻找处理程序 48723.9 进一步搜索 48823.9.1 一般法则 48923.9.2 搜索调用栈的示例 48923.10 抛出异常 49223.11 不带异常对象的抛出 49323.12 throw 表达式 494第 24 章 预处理指令 49524.1 什么是预处理指令 49524.2 基本规则 49524.3 #define 和#undef 指令 49624.4 条件编译 49724.5 条件编译结构 49824.6 诊断指令 50024.7 行号指令 50124.8 区域指令 50224.9 #pragma warning 指令 503第 25 章 反射和特性 50425.1 元数据和反射 50425.2 Type 类 50525.3 获取Type 对象 50625.4 什么是特性 50825.5 应用特性 50925.6 预定义的保留特性 50925.6.1 Obsolete 特性 50925.6.2 Conditional 特性 51025.6.3 调用者信息特性 51225.6.4 DebuggerStepThrough 特性 51325.6.5 其他预定义特性 51425.7 关于应用特性的更多内容 51425.7.1 多个特性 51425.7.2 其他类型的目标 51525.7.3 全局特性 51525.8 自定义特性 51625.8.1 声明自定义特性 51625.8.2 使用特性的构造函数 51625.8.3 指定构造函数 51725.8.4 使用构造函数 51725.8.5 构造函数中的位置参数和命名参数 51825.8.6 限制特性的使用 51825.8.7 自定义特性的最佳实践 52025.9 访问特性 52025.9.1 使用IsDefined 方法 52025.9.2 使用GetCustomAttributes方法 521第 26 章 C# 6.0 和C# 7.0 新增的内容 52326.1 新增内容概述 52426.2 字符串插值(C# 6.0) 52426.3 自动属性初始化语句 52526.4 只读自动属性(C# 6.0) 52626.5 表达式函数体成员(C# 6.0 和C# 7.0) 52626.6 using static(C# 6.0) 52726.7 空条件运算符(C# 6.0) 52826.8 在catch 和finally 块中使用await(C# 6.0) 52826.9 nameof 运算符(C# 6.0) 52926.10 异常过滤器(C# 6.0) 52926.11 索引初始化语句(C# 6.0) 53026.12 集合初始化语句的扩展方法(C# 6.0) 53226.13 改进的重载决策(C# 6.0) 53326.14 值元组(C# 7.0) 53426.15 is 模式匹配(C# 7.0) 53426.16 switch 模式匹配(C# 7.0) 53626.17 自定义析构函数(C# 7.0) 53826.18 二进制字面量和数字分隔符(C# 7.0) 54026.19 out 变量(C# 7.0) 54126.20 局部函数(C# 7.0) 54226.21 ref 局部变量(ref 变量)和ref 返回(C# 7.0) 54426.22 表达式函数体成员的扩展(C# 7.0) 54426.23 throw 表达式(C# 7.0) 54526.24 扩展的async 返回类型(C# 7.0) 545第 27 章 其他主题 54627.1 概述 54627.2 字符串 54627.3 StringBuilder 类 54827.4 把字符串解析为数据值 54927.5 关于可空类型的更多内容 55027.5.1 为可空类型赋值 55227.5.2 使用空接合运算符 55227.5.3 空条件运算符 55327.5.4 使用可空用户定义类型 55527.6 Main 方法 55627.7 文档注释 55827.7.1 插入文档注释 55827.7.2 使用其他XML 标签 55927.8 嵌套类型 55927.8.1 嵌套类的示例 56027.8.2 可见性和嵌套类型 56127.9 析构函数和dispose 模式 56327.9.1 标准dispose 模式 56427.9.2 比较构造函数和析构函数 56627.10 Tuple 和ValueTuple 56627.11 和COM 的互操作 568

查看全部↓



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭