图书介绍

C#图解教程pdf电子书版本下载

C#图解教程
  • (美)DANIELSOLIS著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115187734
  • 出版时间:2009
  • 标注页数:445页
  • 文件大小:175MB
  • 文件页数:461页
  • 主题词:C语言-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

C#图解教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 C#和.NET框架 1

1.1在.NET之前 1

1.1.120世纪90年代后期的Windows编程 1

1.1.2下一代平台的目标 2

1.2进入Microsoft.NET 2

1.2.1.NET框架的组成 2

1.2.2大大改进的编程环境 3

1.3编译成CIL 4

1.4编译成本机代码并执行 5

1.5CLR 6

1.6CLI 7

1.7缩写回顾 8

第2章 C#编程概述 9

2.1一个简单的C#程序 9

2.2标识符和关键字 10

2.2.1命名约定 11

2.2.2关键字 12

2.3Main:程序的起始点 12

2.4空白 13

2.5语句 13

2.5.1简单语句 13

2.5.2块 13

2.6从程序中输出文本 14

2.6.1Write 14

2.6.2WriteLine 15

2.6.3格式字符串 15

2.6.4多重标记和值 16

2.7注释 16

2.7.1关于注释的补充 17

2.7.2文档注释 17

2.7.3注释类型总结 18

第3章 类型、存储和变量 19

3.1C#程序是一组类型声明 19

3.2类型是一种模板 20

3.3实例化类型 20

3.4数据成员和函数成员 21

3.5预定义类型 21

3.6用户定义类型 23

3.7栈和堆 24

3.7.1栈 24

3.7.2堆 24

3.8值类型和引用类型 25

3.8.1存储引用类型对象的成员 26

3.8.2C#类型的分类 27

3.9变量 27

3.9.1变量声明 27

3.9.2多重变量声明 29

3.9.3使用变量的值 29

第4章 类:基础 30

4.1类的概述 30

4.2程序和类:一个快速的示例 31

4.3声明类 31

4.4类成员 32

4.4.1字段 32

4.4.2显式和隐式字段初始化 33

4.4.3声明多个字段 34

4.4.4方法 34

4.5创建变量和类的实例 35

4.6为数据分配内存 35

4.7实例成员 36

4.8访问修饰符 37

4.9从类的内部访问成员 39

4.10从类的外部访问成员 40

4.11综合应用 41

第5章 方法 43

5.1方法的结构 43

5.2本地变量 45

5.2.1类型推断和var关键字 45

5.2.2嵌套块中的本地变量 46

5.3本地常量 47

5.4方法调用 49

5.5返回值 50

5.6参数 52

5.6.1形参 53

5.6.2实参 53

5.6.3带输入参数的方法示例 54

5.7值参数 54

5.8引用参数 56

5.9输出参数 58

5.10参数数组 60

5.10.1方法调用 61

5.10.2数组作实参 63

5.11参数类型总结 64

5.12栈帧 64

5.13递归 65

5.14方法重载 66

第6章 类进阶 69

6.1类成员 69

6.2实例类成员 71

6.3静态字段 71

6.4从类的外部访问静态成员 72

6.4.1静态字段示例 73

6.4.2静态成员的生存期 73

6.5静态函数成员 74

6.6其他静态类成员类型 75

6.7成员常量 75

6.8属性 77

6.8.1属性声明和访问器 78

6.8.2属性示例 78

6.8.3使用属性 79

6.8.4属性和关联字段 80

6.8.5执行其他计算 81

6.8.6只读和只写属性 82

6.8.7计算只读属性示例 82

6.8.8属性和数据库示例 83

6.8.9自动实现属性 83

6.8.10静态属性 84

6.9实例构造函数 85

6.9.1带参数的构造函数 86

6.9.2默认构造函数 87

6.10静态构造函数 88

6.10.1静态构造函数示例 88

6.10.2构造函数的可访问性 89

6.11对象初始化列表 89

6.12析构函数 90

6.12.1调用析构函数 91

6.12.2标准清理模式 93

6.13比较构造函数和析构函数 94

6.14readonly修饰符 94

6.15this关键字 95

6.16索引 96

6.16.1什么是索引 97

6.16.2索引和属性 98

6.16.3声明索引 98

6.16.4set访问器 99

6.16.5get访问器 100

6.16.6关于索引的补充 100

6.16.7为Employee示例声明索引 100

6.16.8另一个索引示例 101

6.16.9索引重载 102

6.17访问器的访问修饰符 103

6.18分部类和分部类型 104

第7章 类和继承 107

7.1类继承 107

7.2访问继承的成员 108

7.3隐藏基类的成员 110

7.4基类访问 111

7.5使用基类的引用 112

7.5.1虚方法和覆写方法 114

7.5.2覆写标记为override的方法 115

7.6构造函数的执行 118

7.6.1构造函数初始化语句 119

7.6.2类访问修饰符 120

7.7程序集间的继承 121

7.8成员访问修饰符 123

7.8.1访问成员的区域 123

7.8.2公有成员的可访问性 124

7.8.3私有成员的可访问性 125

7.8.4受保护成员的可访问性 125

7.8.5内部成员的可访问性 126

7.8.6受保护内部成员的可访问性 126

7.8.7成员访问修饰符的总结 126

7.9抽象成员 127

7.10抽象类 128

7.11密封类 129

7.12静态类 130

7.13扩展方法 130

7.14外部方法 133

第8章 表达式和运算符 135

8.1表达式 135

8.2字面量 136

8.2.1整数字面量 137

8.2.2实数字面量 137

8.2.3字符字面量 138

8.2.4字符串字面量 139

8.3求值顺序 140

8.3.1优先级 141

8.3.2结合性 141

8.4简单算术运算符 142

8.5求余运算符 142

8.6关系比较运算符和相等比较运算符 143

8.7递增运算符和递减运算符 145

8.8条件逻辑运算符 146

8.9逻辑运算符 147

8.10移位运算符 148

8.11赋值运算符 150

8.12条件运算符 151

8.13一元算术运算符 152

8.14用户定义类型转换 153

8.15 运算符重载 155

8.15.1运算符重载的限制 156

8.15.2运算符重载的示例 157

8.16 typeof运算符 158

第9章 语句 161

9.1什么是语句 161

9.2表达式语句 162

9.3控制流语句 163

9.4 1f语句 163

9.5 if...el se语句 164

9.6 switch语句 165

9.6.1分支示例 166

9.6.2 switch语句的补充 167

9.6.3分支标签 168

9.7 while循环 169

9.8 do循环 169

9.9 for循环 170

9.9.1 for语句中变量的有效范围 172

9.9.2初始化语句和迭代表达式中的多表达式 172

9.10跳转语句 172

9.10.1 break语句 173

9.10.2 continue语句 173

9.11标签语句 174

9.11.1标签 174

9.11.2标签语句的范围 175

9.12 goto语句 175

9.13 using语句 176

9.13.1资源的包装使用 177

9.13.2 using语句的示例 178

9.13.3多个资源和嵌套 179

9.13.4 using语句的另一种形式 180

9.14其他语句 180

第10章 命名空间和程序集 181

10.1引用其他程序集 181

10.2命名空间 184

10.2.1命名空间名称 186

10.2.2命名空间的补充 187

10.2.3命名空间跨文件伸展 188

10.2.4嵌套命名空间 188

10.3 using指令 189

10.3.1 using命名空间指令 189

10.3.2 using别名指令 190

10.4程序集的结构 191

10.5程序集标识符 192

10.6强命名程序集 193

10.7程序集的私有方式部署 194

10.8共享程序集和GAC 194

10.8.1把程序集安装到GAC 194

10.8.2 GAC内的并肩执行 195

10.9配置文件 196

10.10延迟签名 196

第11章 异常 198

11.1什么是异常 198

11.2 try语句 199

11.3异常类 200

11.4 catch子句 200

11.4.1使用特定catch子句的示例 201

11.4.2 catch子句段 202

11.5 finally块 203

11.6为异常寻找处理代码 204

11.7更进一步搜索 204

11.7.1一般法则 205

11.7.2搜索调用栈的示例 206

11.8抛出异常 207

11.9不带异常对象的抛出 208

第12章 结构 210

12.1什么是结构 210

12.2结构是值类型 211

12.3对结构赋值 212

12.4构造函数和析构函数 213

12.4.1实例构造函数 213

12.4.2静态构造函数 214

12.4.3构造函数和析构函数的总结 214

12.5字段初始化是不允许的 215

12.6结构是密封的 215

12.7装箱和取消装箱 215

12.8结构作为返回类型和参数 215

12.9关于结构的附加信息 215

第13章 枚举 217

13.1枚举 217

13.1.1设置底层类型和显式值 218

13.1.2隐式成员编号 219

13.2位标志 220

13.2.1 Flags特性 222

13.2.2使用位标志的示例 223

13.3关于枚举的补充 224

第14章 数组 226

14.1数组 226

14.1.1定义 226

14.1.2重要细节 227

14.2数组的类型 227

14.3数组是对象 228

14.4一维数组和矩形数组 229

14.5实例化一维数组或矩形数组 229

14.6访问数组元素 230

14.7初始化数组 231

14.7.1显式初始化一维数组 231

14.7.2显式初始化矩形数组 232

14.7.3初始化矩形数组的语法点 232

14.7.4快捷语法 233

14.7.5隐式类型数组 233

14.7.6综合内容 234

14.8交错数组 234

14.8.1声明交错数组 235

14.8.2快捷实例化 235

14.8.3实例化交错数组 235

14.8.4交错数组中的子数组 236

14.9比较矩形数组和交错数组 237

14.10 foreach语句 238

14.10.1迭代变量是只读的 239

14.10.2 foreach语句和多维数组 240

14.11数组协变 241

14.12数组继承的有用成员 242

14.13比较数组类型 245

第15章 委托 246

15.1什么是委托 246

15.2声明委托类型 247

15.3创建委托对象 248

15.4赋值委托 249

15.5组合委托 250

15.6为委托增加方法 250

15.7从委托移除方法 251

15.8调用委托 251

15.9委托的示例 252

15.10调用带返回值的委托 253

15.11调用带引用参数的委托 254

15.12匿名方法 255

15.12.1使用匿名方法 255

15.12.2匿名方法的语法 256

15.12.3变量和参数的作用域 257

15.13 Lambda表达式 259

第16章 事件 261

16.1事件和委托相似 261

16.2源代码组件概览 262

16.3声明事件 263

16.3.1事件是成员 263

16.3.2委托类型和EventHandl er 264

16.4触发事件 264

16.5订阅事件 265

16.6标准事件的用法 267

16.6.1使用EventArgs类 267

16.6.2通过扩展EventArgs来传递数据 268

16.6.3使用自定义委托 268

16.7 MyTimerClass代码 270

16.8事件访问器 271

第17章 接口 273

17.1什么是接口 273

17.2声明接口 276

17.3实现接口 277

17.4接口是引用类型 278

17.5接口和as运算符 280

17.6实现多个接口 280

17.7实现具有重复成员的接口 281

17.8多个接口的引用 282

17.9派生成员作为实现 284

17.10显式接口成员实现 284

17.11接口可以继承接口 287

第18章 转换 290

18.1什么是转换 290

18.2隐式转换 291

18.3显式转换和强制转换 292

18.4转换的类型 293

18.5数字的转换 294

18.5.1隐式数字转换 294

18.5.2溢出检测上下文 295

18.5.3显式数字转换 296

18.6引用转换 299

18.6.1隐式引用转换 300

18.6.2显式引用转换 301

18.6.3有效显式引用转换 301

18.7装箱转换 302

18.8拆箱转换 304

18.9用户自定义转换 305

18.9.1用户自定义转换的约束 305

18.9.2用户自定义转换的示例 306

18.9.3计算用户自定义转换 307

18.9.4多步用户自定义转换的示例 308

18.10 is运算符 309

18.11 as运算符 310

第19章 泛型 311

19.1什么是泛型 311

19.2 C#中的泛型 313

19.3泛型类 314

19.4声明泛型类 314

19.5创建构造类型 315

19.6创建变量和实例 316

19.6.1使用泛型的栈的示例 317

19.6.2比较泛型和非泛型栈 318

19.7类型参数的约束 319

19.7.1 Where子句 320

19.7.2约束类型和次序 320

19.8泛型结构 321

19.9泛型接口 322

19.9.1使用泛型接口的示例 323

19.9.2泛型接口的实现必须唯一 323

19.10泛型委托 324

19.11泛型方法 326

19.11.1声明泛型方法 326

19.11.2调用泛型方法 327

19.11.3泛型方法的示例 328

19.12扩展方法和泛型类 329

第20章 枚举数和迭代器 331

20.1枚举数和可枚举类型 331

20.1.1使用foreach语句 331

20.1.2枚举数类型 332

20.2使用IEnumerator接口 333

20.3IEnumerable接口 336

20.4不实现接口的枚举数 338

20.5泛型枚举接口 339

20.6 IEnumerator〈T〉接口 339

20.7IEnumerable〈T〉接口 341

20.8迭代器 342

20.8.1迭代器块 343

20.8.2使用迭代器来创建枚举数 344

20.8.3使用迭代器来创建可枚举类型 345

20.9常见迭代器模式 346

20.10产生可枚举类型和枚举数 347

20.11产生多个可枚举类型 348

20.12产生多个枚举数 349

20.13迭代器实质 350

第21章 介绍LINQ 352

21.1什么是LNQ 352

21.2 LNQ提供程序 353

21.3查询语法和方法语法 355

21.4查询变量 356

21.5查询表达式的结构 357

21.5.1 from子句 358

21.5.2 join子句 359

21.5.3什么是联结 360

21.5.4查询主体中的f rom...let...where片段 362

21.5.5 orderby子句 365

21.5.6 sel ect group子句 366

21.5.7查询中的匿名类型 367

21.5.8 group子句 368

21.5.9查询延续 369

21.6标准查询运算符 370

21.6.1查询表达式和标准查询运算符 371

21.6.2标准查询运算符的签名 372

21.6.3委托作为参数 373

21.6.4 LNQ预定义的委托类型 374

21.6.5使用委托参数的示例 375

21.6.6使用Lambda表达式参数的示例 375

21.7 LINQ to XML 376

21.7.1标记语言 377

21.7.2 XML基础 377

21.7.3 XML类 378

21.7.4使用XML树的值 381

21.7.5使用XML属性 384

21.7.6节点的其他类型 387

21.7.7使用LINQ to XML的LINQ查询 388

第22章 异步编程简介 391

22.1进程、线程以及异步编程 391

22.1.1多线程处理带来的问题 391

22.1.2多线程处理的复杂度 392

22.2异步编程模式 392

22.3 BeginInvoke和EndInvoke 393

22.3.1等待-直到结束模式 395

22.3.2 AsyncResult类 396

22.3.3轮询模式 396

22.3.4回调模式 397

22.4计时器 400

第23章 预处理指令 403

23.1什么是预处理指令 403

23.2基本规则 403

23.3 #define和#undef指令 404

23.4条件编译 405

23.5条件编译结构 406

23.6诊断指令 408

23.7行号指令 408

23.8区域指令 409

23.9 #pragma warning指令 410

第24章 反射和特性 411

24.1元数据和反射 411

24.2 Type类 411

24.3获取Type对象 413

24.4什么是特性 415

24.5应用特性 415

24.6预定义的保留的特性 416

24.6.1 Obsolete特性 416

24.6.2 Conditional特性 417

24.6.3预定义的特性 418

24.7有关应用特性的更多内容 419

24.7.1多个特性 419

24.7.2其他类型的目标 419

24.7.3全局特性 420

24.8自定义特性 420

24.8.1声明自定义特性 421

24.8.2使用特性构造函数 421

24.8.3指定构造函数 421

24.8.4使用构造函数 422

24.8.5构造函数中的位置参数和命名参数 422

24.8.6限制特性的使用 423

24.8.7自定义特性的最佳实践 424

24.9访问特性 425

24.9.1使用IsDefined方法 425

24.9.2使用GetCustomAttribute方法 426

第25章 其他主题 428

25.1概述 428

25.2字符串 428

25.2.1使用StringBuilder类 429

25.2.2格式化数字字符串 430

25.3把字符串解析为数据值 433

25.4可空类型 434

25.4.1创建可空类型 434

25.4.2为可空类型赋值 436

25.4.3使用可空用户自定义类型 437

25.5 Main方法 438

25.6文档注释 440

25.6.1插入文档注释 440

25.6.2使用其他XML标签 441

25.7嵌套类型 441

25.7.1嵌套类的示例 442

25.7.2可见性和嵌套类型 443

精品推荐