C#3.0: a beginner’s guide
副标题:无
分类号:
ISBN:9787302214335
微信扫一扫,移动浏览光盘
简介
《新手学C# 3.0(第3版)》由世界顶级程序设计大师和畅销书作者Herbert Schildt带领您掌握C#的用法——微软.NET Framework最重要的编程语言。《新手学C# 3.0(第3版)》首先介绍了如何创建、编译和运行C#程序,然后介绍了数据类型、运算符、控制语句、方法、类和对象,接着介绍了继承、接口、属性、索引器、异常、事件、名称空间、泛型等。此外,《新手学C# 3.0(第3版)》还包括了C# 3.0新增的功能,如LINQ、拉姆达表达式和匿名类型等。在《新手学C# 3.0(第3版)》的帮助下,读者可以快速地掌握C# 3.0的编程方法。
《新手学C# 3.0(第3版)》特色
关键技能与概念——每一章包括的具体技能
专家解答——通过“问”和“答”提供更多的信息和提示
试一试——提供用于应用技能的实践练习
注意——与正在介绍的主题相关的经验信息
自测题——每章末尾通过测试题来检验本章所学知识
带注释的语法——示例代码中的注释说明了当前代码体现的编程技术
目录
第1章c#基础 1
1.1c#家族树 2
1.1.1c语言:现代编程的开端 2
1.1.2oop与c++的产生 2
1.1.3internet与java的出现 3
1.1.4c#的产生 4
1.2c#的发展 5
1.3c#与.net framework的关系 6
1.3.1.net framework的定义 6
1.3.2公共语言运行库的工作方式 6
1.3.3托管与非托管代码 7
1.3.4公共语言规范 7
1.4面向对象编程 8
1.4.1封装 8
1.4.2多态性 9
1.4.3继承 9
1.5创建、编译和运行第一个
c#程序 10
1.5.1获得c# 3.0编译器 11
1.5.2使用visual studio ide 11
.1.5.3使用c#命令行编译器csc.exe 15
1.6逐行分析第一个样本程序 16
1.7处理语法错误 18
1.8程序变体 19
1.9使用变量 19
1.10double数据类型 22
1.11两种控制语句 25
1.11.1if语句 25
1.11.2for循环 27
1.12使用代码块
1.13分号和定位 30
1.14c#关键字 32
1.15标识符 33
1.16c#类库 34
第2章数据类型与运算符简介 37
2.1数据类型重要的原因 38
2.2c#的值类型 38
2.3浮点类型 41
2.4decimal类型 42
2.5字符 43
2.6bool类型 44
2.7一些输出选项 45
2.8字面值 48
2.8.1十六进制字面值 49
2.8.2字符转义序列 49
2.8.3字符串字面值 50
2.9详细介绍变量 52
2.9.1初始化变量 52
2.9.2动态初始化 53
2.9.3隐式类型变量 53
2.10变量的作用域和生命周期 55
2.11运算符 58
2.12算术运算符 58
2.13关系与逻辑运算符 61
2.14赋值运算符 66
2.14.1复合赋值 66
2.14.2赋值中的类型转换 67
2.15强制转换不兼容的类型 68
2.16运算符优先级 70
2.17表达式中的类型转换 70
第3章程序控制语句 77
3.1从键盘输入字符 78
3.2if语句 79
3.2.1嵌套if 80
3.2.2if-else-if梯次 81
3.3switch语句 82
3.4for循环 89
3.4.1for循环的一些变体 91
3.4.2在for循环内声明循环控制变量 94
3.5while循环 95
3.6do-while循环 96
3.7使用break退出循环 101
3.8使用continue 103
3.9goto 104
3.10嵌套循环 109
第4章类、对象及方法 113
4.1类的基础知识 114
4.1.1类的一般形式 114
4.1.2定义类 115
4.2创建对象的方式 119
4.3引用变量与赋值 120
4.4方法 120
4.4.1向vehicle类中添加方法 121
4.4.2从方法返回 123
4.4.3返回值 124
4.4.4使用形参 126
4.4.5向vehicle中添加一个参数化方法 128
4.5构造函数 135
4.5.1参数化构造函数 136
4.5.2向vehicle类中添加一个构造函数 137
4.6再次介绍new运算符 139
4.7垃圾收集与析构函数 139
4.8this关键字 140
第5章更多数据类型与运算符 145
5.1数组 146
5.2多维数组 152
5.2.1二维数组 152
5.2.2三维或多维数组 153
5.2.3初始化多维数组 153
5.3交错数组 154
5.4数组引用赋值 156
5.5使用数组的length属性 157
5.6创建隐式类型数组 160
5.7foreach循环 164
5.8字符串 167
5.8.1构造string 167
5.8.2对字符串进行操作 168
5.8.3字符串的数组 170
5.8.4字符串是不可变的 171
5.9按位运算符 172
5.9.1按位and、or、xor和not运算符 173
5.9.2移位运算符 177
5.9.3按位复合赋值 179
5.10“?”运算符 182
第6章详细介绍方法与类 187
6.1控制对类成员的访问权限 188
6.2向方法传递对象引用 194
6.3使用ref和out形参 197
6.3.1使用ref 198
6.3.2使用out 199
6.4使用可变数量的实参 202
6.5返回对象 204
6.6方法重载 206
6.7重载构造函数 212
6.8main()方法 218
6.8.1从main()中返回值 218
6.8.2向main()传递实参 219
6.9递归 221
6.10理解static 222
6.11static构造函数和类 225
第7章运算符重载、索引器及属性 231
7.1运算符重载 232
7.1.1operator方法的一般形式 232
7.1.2重载二元运算符 233
7.1.3重载一元运算符 235
7.1.4增加灵活性 239
7.1.5重载关系运算符 244
7.1.6关于运算符重载的提示与限制 246
7.2索引器 247
7.2.1多维索引器 252
7.2.2索引器限制 254
7.3属性 254
7.3.1自动实现属性 258
7.3.2属性限制 259
7.4使用带存取器的访问修饰符 259
第8章继承 271
8.1继承基础知识 272
8.2成员访问和继承 275
8.3使用受保护访问 278
8.4构造函数与继承 279
8.5继承与名称隐藏 285
8.6使用base访问隐藏名称 286
8.7创建多层层次结构 291
8.8何时调用构造函数 294
8.9基类引用和派生对象 295
8.10虚方法与重写 298
8.10.1重写方法的原因 301
8.10.2应用虚方法 301
8.11使用抽象类 304
8.12使用sealed关键字防止继承 308
8.13object类 309
第9章接口、结构与枚举 315
9.1接口 316
9.2使用接口引用 320
9.3接口属性 328
9.4接口索引器 330
9.5接口可以继承 332
9.6显式实现 333
9.7结构 336
9.8枚举 338
9.8.1初始化枚举 340
9.8.2指定枚举的底层类型 340
第10章异常处理 343
10.1system.exception类 344
10.2异常处理基础知识 344
10.2.1使用try和catch 344
10.2.2一个简单的异常示例 345
10.2.3第二个异常示例 346
10.3未捕获异常的后果 347
10.4异常有助于适当地
处理错误 349
10.5使用多个catch子句 350
10.6捕获所有异常 351
10.7try块可以嵌套 352
10.8抛出异常 353
10.9使用finally 355
10.10详述异常 357
10.11派生异常类 359
10.12捕获派生类异常 361
10.13使用checked和unchecked 366
第11章使用i/o 371
11.1构建在流基础上的c# i/o 372
11.1.1字节流与字符流 372
11.1.2预先定义的流 372
11.2各种流类 372
11.2.1stream类 373
11.2.2字节流类 374
11.2.3字符流包装器类 374
11.2.4二进制流 376
11.3控制台i/o 376
11.3.1读取控制台输入 376
11.3.2编写控制台输出 378
11.4filestream和面向字节的文件i/o 379
11.4.1打开和关闭文件 380
11.4.2从filestream中读取字节 382
11.4.3写人文件 383
11.5基于字符的文件i/o 385
11.5.1使用streamwriter 386
11.5.2使用streamreader 388
11.6重定向标准流 389
11.7读、写二进制数据 393
11.7.1binarywriter 393
11.7.2binaryreader 394
11.7.3说明二进制i/o 395
11.8随机访问文件 397
11.9将数值字符串转换成它们的内部表示 399
第12章委托、事件与名称空间 411
12.1委托 412
12.1.1使用实例方法作为委托 415
12.1.2多播 416
12.1.3为什么使用委托 418
12.2匿名方法 419
12.3事件 422
12.3.1多播事件示例 424
12.3.2通过事件使用匿名方法 426
12.4名称空间 428
12.4.1声明名称空间 428
12.4.2using 431
12.4.3using的第二种形式 432
12.4.4名称空间可以累加 433
12.4.5名称空间可以嵌套 434
12.4.6全局名称空间 436
第13章泛型 441
13.1泛型的概念 442
13.2泛型的基本原理 442
13.2.1基于类型实参的不同泛型类型 445
13.2.2泛型提高类型安全性 445
13.3包含两个类型形参的泛型类 448
13.4约束类型 450
13.4.1使用基类约束 451
13.4.2使用约束在两个类型形参之间建立关系 453
13.4.3使用接口约束 454
13.4.4使用new( )构造函数约束 456
13.4.5引用类型约束和值类型约束 458
13.4.6使用多种约束 460
13.5创建类型形参的默认值 461
13.6泛型结构 463
13.7泛型方法 464
13.7.1使用显式类型实参调用泛型方法 467
13.7.2在泛型方法中使用约束 467
13.8泛型委托 468
13.9泛型接口 470
第14章linq 简 介 481
14.1linq的定义 482
14.2linq的基本原理 483
14.2.1简单查询 483
14.2.2查询可以多次执行 485
14.2.3查询中的数据类型如何关联 486
14.2.4查询的一般形式 487
14.3使用where过滤值 488
14.4使用orderby给结果排序 490
14.5仔细分析select 491
14.6使用group分组结果 494
14.7使用into创建继续 496
14.8使用let在查询中创建变量 498
14.9使用join连接两个序列 499
14.10匿名类型和对象初始化器 502
14.11创建分组连接 505
14.12查询方法和拉姆达表达式 508
14.12.1基本查询方法 508
14.12.2拉姆达表达式 509
14.12.3使用查询方法创建查询 510
14.12.4更多与查询相关的扩展方法 512
14.12.5延迟查询执行和即时查询执行 515
14.13进一步研究扩展方法 516
14.14进一步研究拉姆达表达式 518
14.14.1表达式拉姆达 518
14.14.2语句拉姆达 520
第15章预处理程序、rtti、可空类型和其他高级主题 525
15.1预处理程序 526
15.1.1#define 526
15.1.2#if和#endif 526
15.1.3#else和#elif 528
15.1.4#undef 530
15.1.5#error 531
15.1.6#warning 531
15.1.7#line 531
15.1.8#region和#endregion 531
15.1.9#pragma 532
15.2运行时类型标识 532
15.2.1使用is测试类型 532
15.2.2使用as 533
15.2.3使用typeof 534
15.3可空类型 534
15.3.1“??”运算符 536
15.3.2可空对象与关系和逻辑运算符 537
15.4不安全代码 538
15.4.1指针简介 538
15.4.2不安全的关键字 540
15.4.3使用fixed 541
15.5属性 542
15.5.1conditional属性 543
15.5.2obsolete属性 544
15.6转换运算符 545
15.7集合简介 548
15.7.1集合的基础知识 549
15.7.2集合示例研究:创建一个动态数组 550
15.8其他关键字 555
15.8.1internal访问修饰符 555
15.8.2sizeof 556
15.8.3lock 556
15.8.4readonly 556
15.8.5stackalloc 557
15.8.6using语句 557
15.8.7const和volatile 558
15.8.8partial修饰符 558
15.8.9yield 561
15.8.10extern 561
15.9展望 561
附录a自测题答案 563
1.1c#家族树 2
1.1.1c语言:现代编程的开端 2
1.1.2oop与c++的产生 2
1.1.3internet与java的出现 3
1.1.4c#的产生 4
1.2c#的发展 5
1.3c#与.net framework的关系 6
1.3.1.net framework的定义 6
1.3.2公共语言运行库的工作方式 6
1.3.3托管与非托管代码 7
1.3.4公共语言规范 7
1.4面向对象编程 8
1.4.1封装 8
1.4.2多态性 9
1.4.3继承 9
1.5创建、编译和运行第一个
c#程序 10
1.5.1获得c# 3.0编译器 11
1.5.2使用visual studio ide 11
.1.5.3使用c#命令行编译器csc.exe 15
1.6逐行分析第一个样本程序 16
1.7处理语法错误 18
1.8程序变体 19
1.9使用变量 19
1.10double数据类型 22
1.11两种控制语句 25
1.11.1if语句 25
1.11.2for循环 27
1.12使用代码块
1.13分号和定位 30
1.14c#关键字 32
1.15标识符 33
1.16c#类库 34
第2章数据类型与运算符简介 37
2.1数据类型重要的原因 38
2.2c#的值类型 38
2.3浮点类型 41
2.4decimal类型 42
2.5字符 43
2.6bool类型 44
2.7一些输出选项 45
2.8字面值 48
2.8.1十六进制字面值 49
2.8.2字符转义序列 49
2.8.3字符串字面值 50
2.9详细介绍变量 52
2.9.1初始化变量 52
2.9.2动态初始化 53
2.9.3隐式类型变量 53
2.10变量的作用域和生命周期 55
2.11运算符 58
2.12算术运算符 58
2.13关系与逻辑运算符 61
2.14赋值运算符 66
2.14.1复合赋值 66
2.14.2赋值中的类型转换 67
2.15强制转换不兼容的类型 68
2.16运算符优先级 70
2.17表达式中的类型转换 70
第3章程序控制语句 77
3.1从键盘输入字符 78
3.2if语句 79
3.2.1嵌套if 80
3.2.2if-else-if梯次 81
3.3switch语句 82
3.4for循环 89
3.4.1for循环的一些变体 91
3.4.2在for循环内声明循环控制变量 94
3.5while循环 95
3.6do-while循环 96
3.7使用break退出循环 101
3.8使用continue 103
3.9goto 104
3.10嵌套循环 109
第4章类、对象及方法 113
4.1类的基础知识 114
4.1.1类的一般形式 114
4.1.2定义类 115
4.2创建对象的方式 119
4.3引用变量与赋值 120
4.4方法 120
4.4.1向vehicle类中添加方法 121
4.4.2从方法返回 123
4.4.3返回值 124
4.4.4使用形参 126
4.4.5向vehicle中添加一个参数化方法 128
4.5构造函数 135
4.5.1参数化构造函数 136
4.5.2向vehicle类中添加一个构造函数 137
4.6再次介绍new运算符 139
4.7垃圾收集与析构函数 139
4.8this关键字 140
第5章更多数据类型与运算符 145
5.1数组 146
5.2多维数组 152
5.2.1二维数组 152
5.2.2三维或多维数组 153
5.2.3初始化多维数组 153
5.3交错数组 154
5.4数组引用赋值 156
5.5使用数组的length属性 157
5.6创建隐式类型数组 160
5.7foreach循环 164
5.8字符串 167
5.8.1构造string 167
5.8.2对字符串进行操作 168
5.8.3字符串的数组 170
5.8.4字符串是不可变的 171
5.9按位运算符 172
5.9.1按位and、or、xor和not运算符 173
5.9.2移位运算符 177
5.9.3按位复合赋值 179
5.10“?”运算符 182
第6章详细介绍方法与类 187
6.1控制对类成员的访问权限 188
6.2向方法传递对象引用 194
6.3使用ref和out形参 197
6.3.1使用ref 198
6.3.2使用out 199
6.4使用可变数量的实参 202
6.5返回对象 204
6.6方法重载 206
6.7重载构造函数 212
6.8main()方法 218
6.8.1从main()中返回值 218
6.8.2向main()传递实参 219
6.9递归 221
6.10理解static 222
6.11static构造函数和类 225
第7章运算符重载、索引器及属性 231
7.1运算符重载 232
7.1.1operator方法的一般形式 232
7.1.2重载二元运算符 233
7.1.3重载一元运算符 235
7.1.4增加灵活性 239
7.1.5重载关系运算符 244
7.1.6关于运算符重载的提示与限制 246
7.2索引器 247
7.2.1多维索引器 252
7.2.2索引器限制 254
7.3属性 254
7.3.1自动实现属性 258
7.3.2属性限制 259
7.4使用带存取器的访问修饰符 259
第8章继承 271
8.1继承基础知识 272
8.2成员访问和继承 275
8.3使用受保护访问 278
8.4构造函数与继承 279
8.5继承与名称隐藏 285
8.6使用base访问隐藏名称 286
8.7创建多层层次结构 291
8.8何时调用构造函数 294
8.9基类引用和派生对象 295
8.10虚方法与重写 298
8.10.1重写方法的原因 301
8.10.2应用虚方法 301
8.11使用抽象类 304
8.12使用sealed关键字防止继承 308
8.13object类 309
第9章接口、结构与枚举 315
9.1接口 316
9.2使用接口引用 320
9.3接口属性 328
9.4接口索引器 330
9.5接口可以继承 332
9.6显式实现 333
9.7结构 336
9.8枚举 338
9.8.1初始化枚举 340
9.8.2指定枚举的底层类型 340
第10章异常处理 343
10.1system.exception类 344
10.2异常处理基础知识 344
10.2.1使用try和catch 344
10.2.2一个简单的异常示例 345
10.2.3第二个异常示例 346
10.3未捕获异常的后果 347
10.4异常有助于适当地
处理错误 349
10.5使用多个catch子句 350
10.6捕获所有异常 351
10.7try块可以嵌套 352
10.8抛出异常 353
10.9使用finally 355
10.10详述异常 357
10.11派生异常类 359
10.12捕获派生类异常 361
10.13使用checked和unchecked 366
第11章使用i/o 371
11.1构建在流基础上的c# i/o 372
11.1.1字节流与字符流 372
11.1.2预先定义的流 372
11.2各种流类 372
11.2.1stream类 373
11.2.2字节流类 374
11.2.3字符流包装器类 374
11.2.4二进制流 376
11.3控制台i/o 376
11.3.1读取控制台输入 376
11.3.2编写控制台输出 378
11.4filestream和面向字节的文件i/o 379
11.4.1打开和关闭文件 380
11.4.2从filestream中读取字节 382
11.4.3写人文件 383
11.5基于字符的文件i/o 385
11.5.1使用streamwriter 386
11.5.2使用streamreader 388
11.6重定向标准流 389
11.7读、写二进制数据 393
11.7.1binarywriter 393
11.7.2binaryreader 394
11.7.3说明二进制i/o 395
11.8随机访问文件 397
11.9将数值字符串转换成它们的内部表示 399
第12章委托、事件与名称空间 411
12.1委托 412
12.1.1使用实例方法作为委托 415
12.1.2多播 416
12.1.3为什么使用委托 418
12.2匿名方法 419
12.3事件 422
12.3.1多播事件示例 424
12.3.2通过事件使用匿名方法 426
12.4名称空间 428
12.4.1声明名称空间 428
12.4.2using 431
12.4.3using的第二种形式 432
12.4.4名称空间可以累加 433
12.4.5名称空间可以嵌套 434
12.4.6全局名称空间 436
第13章泛型 441
13.1泛型的概念 442
13.2泛型的基本原理 442
13.2.1基于类型实参的不同泛型类型 445
13.2.2泛型提高类型安全性 445
13.3包含两个类型形参的泛型类 448
13.4约束类型 450
13.4.1使用基类约束 451
13.4.2使用约束在两个类型形参之间建立关系 453
13.4.3使用接口约束 454
13.4.4使用new( )构造函数约束 456
13.4.5引用类型约束和值类型约束 458
13.4.6使用多种约束 460
13.5创建类型形参的默认值 461
13.6泛型结构 463
13.7泛型方法 464
13.7.1使用显式类型实参调用泛型方法 467
13.7.2在泛型方法中使用约束 467
13.8泛型委托 468
13.9泛型接口 470
第14章linq 简 介 481
14.1linq的定义 482
14.2linq的基本原理 483
14.2.1简单查询 483
14.2.2查询可以多次执行 485
14.2.3查询中的数据类型如何关联 486
14.2.4查询的一般形式 487
14.3使用where过滤值 488
14.4使用orderby给结果排序 490
14.5仔细分析select 491
14.6使用group分组结果 494
14.7使用into创建继续 496
14.8使用let在查询中创建变量 498
14.9使用join连接两个序列 499
14.10匿名类型和对象初始化器 502
14.11创建分组连接 505
14.12查询方法和拉姆达表达式 508
14.12.1基本查询方法 508
14.12.2拉姆达表达式 509
14.12.3使用查询方法创建查询 510
14.12.4更多与查询相关的扩展方法 512
14.12.5延迟查询执行和即时查询执行 515
14.13进一步研究扩展方法 516
14.14进一步研究拉姆达表达式 518
14.14.1表达式拉姆达 518
14.14.2语句拉姆达 520
第15章预处理程序、rtti、可空类型和其他高级主题 525
15.1预处理程序 526
15.1.1#define 526
15.1.2#if和#endif 526
15.1.3#else和#elif 528
15.1.4#undef 530
15.1.5#error 531
15.1.6#warning 531
15.1.7#line 531
15.1.8#region和#endregion 531
15.1.9#pragma 532
15.2运行时类型标识 532
15.2.1使用is测试类型 532
15.2.2使用as 533
15.2.3使用typeof 534
15.3可空类型 534
15.3.1“??”运算符 536
15.3.2可空对象与关系和逻辑运算符 537
15.4不安全代码 538
15.4.1指针简介 538
15.4.2不安全的关键字 540
15.4.3使用fixed 541
15.5属性 542
15.5.1conditional属性 543
15.5.2obsolete属性 544
15.6转换运算符 545
15.7集合简介 548
15.7.1集合的基础知识 549
15.7.2集合示例研究:创建一个动态数组 550
15.8其他关键字 555
15.8.1internal访问修饰符 555
15.8.2sizeof 556
15.8.3lock 556
15.8.4readonly 556
15.8.5stackalloc 557
15.8.6using语句 557
15.8.7const和volatile 558
15.8.8partial修饰符 558
15.8.9yield 561
15.8.10extern 561
15.9展望 561
附录a自测题答案 563
C#3.0: a beginner’s guide
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×