C#高级编程C#7&.NETCore2.0pdf下载pdf下载

C#高级编程C#7&.NETCore2.0百度网盘pdf下载

作者:
简介:本篇主要提供C#高级编程C#7&.NETCore2.0pdf下载
出版社:清华大学出版社
出版时间:2019-03
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

C# 7内幕指南,包括高级新特性

目前Visual Studio 2017提供了C# 7。发布为NuGet包的每个.NET Core部分都进行了更新。阅读这本专家级指南是经验丰富的程序员提高效率的更快捷方式。C# 7以更快的速度完成更多工作,没有人比Christian Nagel更适合传播在现实世界中极有价值的全新信息。本书论述清晰,内容完整详尽,为开发人员展示了如何将.NET引入非微软平台,如何操作这些平台上的工具,例如Docker、Gulp和NPM。


内容简介

★为需要新工具的高级开发人员介绍了C# 7和.NET Core 2.0的扩展新特性

★揭示了Visual Studio 2017的新技巧和切合实际的提示,包括新的用户界面、新增的模板、编辑器的改进等

★论述了计划工作流的全新方式,使编码更快,诊断和调试更精确,测试更频繁,发布更自信

★为开发在Android、iOS、Windows、Linux、网络和云上运行的应用程序提供了循序渐进的指南

★掌握Visual Studio的高效率特性,以加速AI革新

作者简介

Christian Nagel 是Visual Studio 和开发技术方向的Microsoft MVP,担任微软开发技术代言人(Microsoft Regional Director)已经超过15 年。Christian 是CN innovation公司的创始人,CN innovation 公司提供指导、培训、代码评审,并协助使用微软技术设计和开发解决方案。他拥有超过25 年的软件开发经验。

Christian Nagel 最初在Digital Equipment 公司通过PDP 11 和VAX / VMS 系统开始他的计算机职业生涯,接触过各种语言和平台。在2000 年,.NET 只有一个技术概览版时,他就开始使用各种技术建立.NET 解决方案。目前,他主要指导人们开发和设计Windows 应用程序、ASP.NET Core Web 应用程序和Xamarin,并帮助他们使用Microsoft Azure 服务产品。

在软件开发领域工作多年以后,Christian 仍然热爱学习和使用新技术,并通过多种形式教别人如何使用新技术。他的Microsoft 技术知识非常渊博,编写了很多书,拥有微软认证培训师(MCT)和微软认证解决方案开发专家(MCSD)认证。Christian 经常在国际会议(如Microsoft Ignite、BASTA!和TechDays)上发言。他创立了INETA Europe 来支持.NET 用户组。


目录

目 录

第 I 部分 C# 语 言

第1 章 .NET 应用程序和工具 3

1.1 选择技术 3

1.2 回顾.NET 历史 4

1.2.1 C# 1.0——一种新语言 4

1.2.2 带有泛型的C# 2 和.NET 2 6

1.2.3 .NET 3.0——Windows Presentation Foundation 6

1.2.4 C# 3 和.NET 3.5——LINQ 6

1.2.5 C# 4 和.NET 4.0——dynamic 和TPL 7

1.2.6 C# 5 和异步编程 7

1.2.7 C# 6 和.NET Core 1.0 8

1.2.8 C# 7 和.NET Core 2.0 8

1.2.9 选择技术,继续前进 9

1.3 .NET 术语 10

1.3.1 .NET Framework 11

1.3.2 .NET Core 11

1.3.3 .NET Standard 11

1.3.4 NuGet 包 12

1.3.5 名称空间 12

1.3.6 公共语言运行库 13

1.3.7 Windows 运行库 13

1.4 用.NET Core CLI 编译 14

1.4.1 设置环境 14

1.4.2 创建应用程序 15

1.4.3 构建应用程序 16

1.4.4 运行应用程序 16

1.4.5 创建Web 应用程序 17

1.4.6 发布应用程序 17

1.5 使用Visual Studio 2017 19

1.6 应用程序类型和技术 24

1.6.1 数据访问 24

1.6.2 Windows 应用程序 24

1.6.3 Xamarin 24

1.6.4 Web 应用程序 25

1.6.5 Web API 25

1.6.6 WebHooks 和SignalR 25

1.6.7 Microsoft Azure 25

1.7 开发工具 26

1.7.1 Visual Studio Community 27

1.7.2 Visual Studio Professional 27

1.7.3 Visual Studio Enterprise 27

1.7.4 Visual Studio for Mac 27

1.7.5 Visual Studio Code 27

1.8 小结 27

第2 章 核心C# 29

2.1 C#基础 29

2.2 变量 31

2.2.1 初始化变量 31

2.2.2 类型推断 32

2.2.3 变量的作用域 33

2.2.4 常量 34

2.3 预定义数据类型 35

2.3.1 值类型和引用类型 35

2.3.2 .NET 类型 36

2.3.3 预定义的值类型 36

2.3.4 预定义的引用类型 40

2.4 程序流控制 42

2.4.1 条件语句 42

2.4.2 循环 44

2.4.3 跳转语句 47

2.5 名称空间 47

2.5.1 using 语句 48

2.5.2 名称空间的别名 49

2.6 Main()方法 49

2.7 使用注释 50

2.7.1 源文件中的内部注释 50

2.7.2 XML 文档 51

2.8 C#预处理器指令 52

2.8.1 #define 和#undef 52

2.8.2 #if、#elif、#else 和#endif 52

2.8.3 #warning 和 # error 53

2.8.4 #region 和#endregion 53

2.8.5 #line 53

2.8.6 #pragma 54

2.9 C#编程准则 54

2.9.1 关于标识符的规则 54

2.9.2 用法约定 55

2.10 小结 58

第3 章 对象和类型 59

3.1 创建及使用类 60

3.2 类和结构 60

3.3 类 61

3.3.1 字段 61

3.3.2 只读字段 61

3.3.3 属性 62

3.3.4 匿名类型 65

3.3.5 方法 66

3.3.6 构造函数 69

3.4 结构 73

3.4.1 结构是值类型 74

3.4.2 只读结构 75

3.4.3 结构和继承 75

3.4.4 结构的构造函数 75

3.4.5 ref 结构 76

3.5 按值和按引用传递参数 76

3.5.1 ref 参数 77

3.5.2 out 参数 77

3.5.3 in 参数 78

3.6 可空类型 79

3.7 枚举类型 79

3.8 部分类 81

3.9 扩展方法 83

3.10 Object 类 83

3.11 小结 84

第4 章 继承 85

4.1 面向对象 85

4.2 继承的类型 85

4.2.1 多重继承 86

4.2.2 结构和类 86

4.3 实现继承 86

4.3.1 虚方法 87

4.3.2 多态性 88

4.3.3 隐藏方法 89

4.3.4 调用方法的基类版本 90

4.3.5 抽象类和抽象方法 90

4.3.6 密封类和密封方法 91

4.3.7 派生类的构造函数 91

4.4 修饰符 93

4.4.1 访问修饰符 93

4.4.2 其他修饰符 94

4.5 接口 94

4.5.1 定义和实现接口 95

4.5.2 派生的接口 97

4.6 is 和as 运算符 98

4.7 小结 99

第5 章 泛型 100

5.1 泛型概述 100

5.1.1 性能 101

5.1.2 类型安全 102

5.1.3 二进制代码的重用 102

5.1.4 代码的扩展 102

5.1.5 命名约定 102

5.2 创建泛型类 103

5.3 泛型类的功能 105

5.3.1 默认值 106

5.3.2 约束 106

5.3.3 继承 108

5.3.4 静态成员 108

5.4 泛型接口 109

5.4.1 协变和抗变 109

5.4.2 泛型接口的协变 110

5.4.3 泛型接口的抗变 111

5.5 泛型结构 111

5.6 泛型方法 113

5.6.1 泛型方法示例 113

5.6.2 带约束的泛型方法 114

5.6.3 带委托的泛型方法 115

5.6.4 泛型方法规范 115

5.7 小结 116

第6 章 运算符和类型强制转换 117

6.1 运算符和类型转换 117

6.2 运算符 118

6.2.1 运算符的简化操作 119

6.2.2 运算符的优先级和关联性 125

6.3 使用二进制运算符 126

6.3.1 位的移动 128

6.3.2 有符号数和无符号数 128

6.4 类型的安全性 129

6.4.1 类型转换 130

6.4.2 装箱和拆箱 132

6.5 比较对象的相等性 133

6.5.1 比较引用类型的相等性 133

6.5.2 比较值类型的相等性 134

6.6 运算符重载 135

6.6.1 运算符的工作方式 135

6.6.2 运算符重载的示例:Vector 结构 136

6.6.3 比较运算符的重载 139

6.6.4 可以重载的运算符 140

6.7 实现自定义的索引运算符 141

6.8 用户定义的类型强制转换 142

6.8.1 实现用户定义的类型强制转换 143

6.8.2 多重类型强制转换 147

6.9 小结 150

第7 章 数组 151

7.1 相同类型的多个对象 151

7.2 简单数组 152

7.2.1 数组的声明 152

7.2.2 数组的初始化 152

7.2.3 访问数组元素 153

7.2.4 使用引用类型 153

7.3 多维数组 154

7.4 锯齿数组 155

7.5 Array 类 156

7.5.1 创建数组 156

7.5.2 复制数组 156

7.5.3 排序 157

7.6 数组作为参数 159

7.7 数组协变 159

7.8 枚举 160

7.8.1 IEnumerator 接口 160

7.8.2 foreach 语句 160

7.8.3 yield 语句 161

7.9 结构比较 164

7.10 Span 165

7.10.1 创建切片 166

7.10.2 使用Span 改变值 166

7.10.3 只读的Span 167

7.11 数组池 167

7.11.1 创建数组池 168

7.11.2 从池中租用内存 168

7.11.3 将内存返回给池 168

7.12 小结 169

第8 章 委托、lambda 表达式和事件 170

8.1 引用方法 170

8.2 委托 170

8.2.1 声明委托 171

8.2.2 使用委托 172

8.2.3 简单的委托示例 174

8.2.4 Action和Func委托 175

8.2.5 BubbleSorter 示例 176

8.2.6 多播委托 177

8.2.7 匿名方法 180

8.3 lambda 表达式 181

8.3.1 参数 181

8.3.2 多行代码 181

8.3.3 闭包 182

8.4 事件 182

8.4.1 事件发布程序 182

8.4.2 事件侦听器 184

8.5 小结 185

第9 章 字符串和正则表达式 186

9.1 System.String 类 187

9.1.1 构建字符串 188

9.1.2 StringBuilder 成员 190

9.2 字符串格式 190

9.2.1 字符串插值 191

9.2.2 日期时间和数字的格式 192

9.2.3 自定义字符串格式 193

9.3 正则表达式 194

9.3.1 正则表达式概述 194

9.3.2 RegularExpressionsPlayground 示例 195

9.3.3 显示结果 197

9.3.4 匹配、组和捕获 198

9.4 字符串和Span 200

9.5 小结 201

第10 章 集合 202

10.1 概述 202

10.2 集合接口和类型 203

10.3 列表 203

10.3.1 创建列表 204

10.3.2 只读集合 210

10.4 队列 210

10.5 栈 213

10.6 链表 214

10.7 有序列表 217

10.8 字典 219

10.8.1 字典初始化器 219

10.8.2 键的类型 219

10.8.3 字典示例 220

10.8.4 Lookup 类 223

10.8.5 有序字典 223

10.9 集 224

10.10 性能 225

10.11 小结 226

前言/序言

  前 言
  许多年过去了,.NET 有了新的发展势头。.NET Framework 有一个年轻的兄弟.NET Core!
  .NET Framework 是封闭的源代码,只能在Windows 系统上使用。现在.NET Core 是开源的,可以在Linux
  上使用,并且使用现代模式。在.NET 生态系统中有很多巨大的改进。
  注意:
  由于最近的变化,C#在最受欢迎的编程语言中排名前十,而.NET Core 在最受欢迎的框架中排名第三。在Web和桌面开发人员中,C#在最流行的语言中排名第三。详情请登录https://insights.stackoverflow.com/ survey/ 2017。
  使用C#和ASP .NET Core,可以创建运行在Windows、Linux和Mac上的Web应用程序和服务。使用Windows Runtime(Windows 运行库),可以通过C#和XAML 以及.NET Core 创建本机Windows 应用程序(也称为通用Windows 平台,UWP)。通过Xamarin,使用C#和XAML可以创建运行在Android 和iOS设备上的应用程序。
  在.NET Standard 的帮助下,可以创建能在ASP.NET Core、Windows 应用、Xamarin 中共享的库,还可以创建传统的Windows Forms 和WPF 应用程序。所有这些都在本书中介绍。
  本书大部分示例都建立在带有Visual Studio 的Windows 系统上。许多示例也在Linux 上进行了测试,并在Linux 和Mac 上运行。除了Windows 应用程序示例之外,还可以使用Mac 的Visual Studio Code 或Visual Studio for the Mac作为开发环境。
  0.1 .NET Core的世界
  .NET 有很长的历史,但是.NET Core 很年轻。.NET Core 2.0 从.NET Framework 中获得了许多新的API,使其更容易将现有的.NET Framework 应用程序迁移到.NET Core 的新世界。
  一个简单的步骤是,可以创建使用.NET Standard 2.0 的库,这些库可以在.NET Framework 4.6.1 及以上版本的应用程序、.NET Core 2.0 应用程序和Windows Build 16299 以上版本的应用程序中使用。
  现在,没有理由不在后端使用ASP.NET Core。随着迁移到.NET Standard 的简化,越来越多的库可以在.NET Core 中使用。总体来看,ASP.NET Core MVC 与ASP.NET MVC 非常相似。然而ASP.NET Core MVC 要灵活得多,使用.NET Core 模式时更容易操作,也更容易扩展。
  对于创建新的Web 应用程序,可能只需要使用新技术Razor Pages。如果应用程序增长,Razor Pages 可以很容易地扩展到使用ASP .NET Core MVC 的模型-视图-控制器模式。
  在撰写本文时,用于实时通信的技术SignalR 的.NET Core 版本即将发布。
  ASP.NET Core 与JavaScript 技术(如Angular 和React/Redux)的结合非常有效,甚至还有模板使用这些技术以及用于后端服务的ASP.NET Core 创建项目。
  注意:
  可以通过https://github.com/dotnet/corefx 访问.NET Core 的源代码。.NET Core 命令行可以在https://github.com/dotnet/cli 上使用。在https://github.com/aspnet 上有许多ASP.NET Core 的存储库。其中包括ASP.NET Core MVC、Razor、SignalR、EntityFrameworkCore 等