图书介绍
C#编程语言2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- 麦中凡,陆永宁编著 著
- 出版社: 北京:北京航空航天大学出版社
- ISBN:7810770888
- 出版时间:2001
- 标注页数:667页
- 文件大小:56MB
- 文件页数:683页
- 主题词:
PDF下载
下载说明
C#编程语言PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
A篇 C#产生的背景3
A1章 网络计算与Microsoft.NET3
A1.1 网络计算3
A1.2 微软的Internet道路5
A1.3 .NET平台6
A1.3.1 Windows.NET7
A1.3.2 .Net FrameWork7
A1.3.3 .Net Enterprise Servers8
A1.3.5 BizTalk Orchestration9
Al.3.4 .NET构建模块服务(Building Block Services)9
A1.4 小结10
A2章 .Net Framework简介11
A2.1 .Net Framework的基本思想11
A2.2 .Net Framework组成13
A2.3 公共语言运行时16
A2.3.1 公共类型系统(CTS)简介19
A2.3.2 元数据22
A2.3.3 语言互用性23
A2.3.4 CLR执行系统24
A2.4 公共语言规范CLS28
A2.5 .NET对语言的要求31
A2A 附录 微软中间语言33
A2A1 数据类型33
A2.6 小结33
A2A2 指令34
A3章 C#的主要特点与用途44
A3.1 C#的主要特点44
A3.1.1 简单性44
A3.1.2 类型系统的统一性45
A3.1.3 现代性45
A3.1.5 类型安全46
A3.1.4 面向对象46
A3.4.6 版本技术47
A3.1.7 兼容性48
A3.1.8 灵活性48
A3.2 C#与其它语言对比48
A3.2.1 C#与VB.NET48
A3.2.2 C#与C++49
A3.2.3 C#与受管C++50
A3.2.4 C#与JScirpt50
A3.2.5 C#与Java50
A3.3.1 .NET构件51
A3.3 C#语言的应用51
A3.3.2 控制台应用52
A3.3.3 Windows应用52
A3.3.4 Windows控件52
A3.3.5 ASP.Net项目52
A3.3.6 Web控件53
A3.3.7 网络服务53
A3.4 小结53
B1章 C#语言概述56
B1.1 从引例开始56
B篇 C#语言规范56
B1.2 类型57
B1.2.1 预定义类型59
Bl.2.2 转换61
Bl.2.3 数组61
B1.2.4 类型系统的统一63
B1.3 变量和参数64
B1.4 自动存储管理67
B1.5 表达式69
B1.6 语句70
B1.7 类74
B1.7.2 域76
B1.7.1 常量76
B1.7.3 方法77
B1.7.4 性质79
B1.7.5 事件80
B1.7.6 操作符81
B1.7.7 索引器82
B1.7.8 实例构造子83
B1.7.9 析构子84
B1.7.10 静态构造子85
B1.7.11 继承85
B1.8 结构87
B1.9 接口88
B1.10 委派89
B1.11 枚举90
B1.12 名字空间和组装91
B1.13 版本92
B1.14 属性95
B2章 词法结构97
B2.1 程序97
B2.2 文法97
B2.2.1 文法表示法97
B2.3 词法分析98
B2.2.2 词法文法98
B2.2.3 语法文法98
B2.3.1 行终结符99
B2.3.2 空白99
B2.3.3 注释100
B2.4 标记101
B2.4.1 泛代码字符转义序列101
B2.4.2 标识符102
B2.4.3 关键字104
B2.4.4 字面量104
B2.5 预处理指令109
B2.4.5 操作符和标点符号109
B2.5.1 条件编译符号110
B2.5.2 预处理表达式111
B2.5.3 声明指令111
B2.5.4 条件编译指令112
B2.5.5 行指令114
B2.5.6 诊断指令115
B2.5.7 区段指令115
B3章 基本概念117
B3.1 程序开始117
B3.3 声明118
B3.2 程序终止118
B3.4 成员120
B3.4.1 名字空间成员120
B3.4.2 结构成员120
B3.4.3 枚举成员121
B3.4.4 类成员121
B3.4.5 接口成员121
B3.4.6 数组成员121
B3.4.7 委派成员121
B3.5.1 声明的可访问性122
B3.5 成员访问122
B3.5.2 可访问域123
B3.5.3 保护性访问125
B3.5.4 访问限制125
B3.6 型构和重载126
B3.7 作用域127
B3.7.1 名字隐藏129
B3.8 名字空间和类型名131
B3.8.1 完全限定名132
B3.9 自动存储管理133
B4.1 值类型135
B4章 类型135
B4.1.1 缺省构造子136
B4.1.2 结构类型137
B4.1.3 简单类型137
B4.1.4 整型138
B4.1.5 浮点类型139
B4.1.6 十进制数类型140
B4.1.7 bool类型140
B4.1.8 枚举类型141
B4.2 引用类型141
B4.2.5 数组类型142
B4.3 装匣和脱匣142
B4.2.6 委派类型142
B4.2.1 类类型142
B4.2.4 接口类型142
B4.2.3 string类型142
B4.2.2 object类型142
B4.3.1 装匣转换143
B4.3.2 脱匣转换144
B5.1.2 实例变量145
B5.1.1 静态变量145
B5.1 变量种类145
B5章 变量145
B5.1.3 数组元素146
B5.1.4 值参数146
B5.1.5 引用参数146
B5.1.6 输出参数146
B5.1.7 局部变量147
B5.2 缺省值147
B5.3 明确赋值147
B5.4 变量引用150
B5.3.2 无赋值初始化变量150
B5.3.1 赋值初始化变量150
B6章 转换151
B6.1 隐式转换151
B6.1.1 标识转换151
B6.1.2 隐式数转换151
B6.1.3 隐式枚举转换152
B6.1.4 隐式引用转换152
B6.1.5 装匣转换152
B6.2.1 显式数转换153
B6.2 显式转换153
B6.1.7 用户定义的隐式转换153
B6.1.6 隐式常量表达式转换153
B6.2.2 显式枚举转换154
B6.2.3 显式引用转换155
B6.2.4 脱匣转换155
B6.2.5 用户定义的显式转换155
B6.3 标准转换155
B6.4 用户定义转换156
B6.4.1 许可的用户定义转换156
B6.4.2 用户定义转换的判定156
B6.3.2 标准显式转换156
B6.3.1 标准隐式转换156
B6.4.3 用户定义的隐式转换157
B6.4.4 用户定义的显式转换158
B7章 表达式159
B7.1 表达式分类159
B7.1.1 表达式的值160
B7.2 操作符160
B7.2.1 操作符优先级和结合性160
B7.2.2 操作符重载161
B7.2.3 单目操作符重载分辨162
B7.2.6 数值提升163
B7.2.4 双目操作符重载分辨163
B7.2.5 候选的用户定义操作符163
B7.3 成员查找164
B7.3.1 基类型165
B7.4 函数成员165
B7.4.1 变元表167
B7.4.2 重载分辨169
B7.4.3 函数成员调用170
B7.4.4 虚函数成员查询171
B7.5.1 简单名字172
B7.5 字面量172
B7.4.5 接口函数成员查询172
B7.5.2 基原表达式173
B7.5.3 带括号的表达式174
B7.5.4 成员访问174
B7.5.5 调用表达式176
B7.5.6 元素访问178
B7.5.7 this访问179
B7.5.8 基访问180
B7.5.9 后缀增减量操作符180
B7.5.10 new操作符181
B7.5.11 typeof操作符185
B7.5.12 checked和unchecked操作符186
B7.6 单目表达式188
B7.6.1 单目加操作符188
B7.6.2 单目减操作符188
B7.6.3 逻辑反操作符189
B7.6.4 按位补操作符189
B7.6.6 地址操作符190
B7.6.7 前缀增量和减量操作符190
B7.6.5 间接寻址操作符190
B7.6.8 强制表达式191
B7.7 算术操作符191
B7.7.1 乘法操作符191
B7.7.2 除法操作符192
B7.7.3 求余操作符193
B7.7.4 加法操作符194
B7.7.5 减法操作符196
B7.8 移位操作符197
B7.9 关系操作符199
B7.9.1 整数比较操作符199
B7.9.2 浮点比较操作符200
B7.9.4 布尔等价操作符201
B7.9.5 枚举比较操作符201
B7.9.3 十进制比较操作符201
B7.9.6 引用类型等价操作符202
B7.9.7 串等价操作符203
B7.9.8 委派等价操作符203
B7.9.9 is操作符203
B7.9.10 as操作符204
B7.10 逻辑操作符204
B7.10.2 枚举逻辑操作符205
B7.10.1 整数逻辑操作符205
B7.10.3 布尔逻辑操作符206
B7.11 条件逻辑操作符206
B7.11.1 布尔条件逻辑操作符206
B7.11.2 用户定义条件逻辑操作符207
B7.12 条件操作符207
B7.13 赋值操作符208
B7.13.1 简单赋值208
B7.13.2 复合赋值210
B7.14 表达式211
B7.15 常量表达式211
B7.13.3 事件赋值211
B7.16 布尔表达式212
B8章 语句214
B8.1 结束点和可达性214
B8.2 块216
B8.2.1 语句表216
B8.3 空语句217
B8.4 标号语句217
B8.5 声明语句217
B8.5.2 局部常量声明218
B8.5.1 局部变量声明218
B8.6 表达式语句219
B8.7 选择语句219
B8.7.1 if语句220
B8.7.2 切换语句220
B8.8 迭代语句224
B8.8.1 while语句224
B8.8.2 do语句225
B8.8.3 for语句225
B8.8.4 foreach语句226
B8.9 跳转语句228
B8.9.1 break语句229
B8.9.3 goto语句230
B8.9.2 continue语句230
B8.9.4 return语句231
B8.9.5 throw语句232
B8.10 try语句232
B8.11 checked和unchecked语句235
B8.12 lock语句236
B8.13 using语句236
B9.1 编译单元239
B9.2 名字空间声明239
B9章 名字空间239
B9.3 使用指令241
B9.3.1 使用别名指令241
B9.3.2 使用名字空间指令243
B9.4 名字空间成员245
B9.5 类型声明246
B10章 类247
B10.1 类声明247
B10.1.1 类修饰符247
B10.1.2 类基规范248
B10.2 类成员250
B10.1.3 类体250
B10.2.1 继承251
B10.2.2 new修饰符252
B10.2.3 访问修饰符252
B10.2.4 成分类型252
B10.2.5 静态成员和实例成员252
B10.2.6 内嵌类型253
B10.2.7 保留的成员名字257
B10.3 void Finalize();常量257
B10.4 域259
B10.4.1 静态域和实例域260
B10.4.2 只读域261
B10.4.3 可变域262
B10.4.4 域初始化262
B10.4.5 变量初始化式263
B10.5 方法264
B10.5.1 方法的参数265
B10.5.2 静态和实例方法271
B10.5.3 虚方法271
B10.5.4 覆盖方法273
B10.5.6 抽象方法275
B10.5.5 封固方法275
B10.5.7 外部方法277
B10.5.8 方法体277
B10.5.9 方法重载278
B10.6 性质278
B10.6.1 静态性质和实例性质279
B10.6.2 访问器280
B10.6.3 虚、封固、覆盖和抽象访问器284
B10.6.4 外部性质286
B10.7 事件286
B10.7.1 事件访问器288
B10.7.2 静态事件和实例事件290
B10.7.3 虚、封固、覆盖和抽象访问器290
B10.7.4 外部事件290
B10.8 索引器291
B10.8.1 索引器重载294
B10.9 操作符294
B10.9.1 单目操作符295
B10.9.2 双目操作符296
B10.9.3 转换操作符296
B10.10 实例构造子298
B10.10.2 实例变量初始化式299
B10.10.1 构造子初始化式299
B10.10.3 构造子执行300
B10.10.4 缺省构造子302
B10.10.5 私有构造子302
B10.10.6 可选的实例构造子参数303
B10.11 静态构造子303
B10.12 析构子304
B11章 结构307
B11.1 结构声明307
B11.1.1 结构修饰符307
B11.3 类和结构的区别308
B11.3.1 值语义308
Bl1.1.2 结构接口308
B11.2 结构成员308
B11.1.3 结构体308
B11.3.2 继承309
B11.3.3 赋值309
B11.3.4 缺省值310
B11.3.5 装匣和脱匣310
B11.3.6 this的含义310
B11.3.9 析构子311
B11.3.8 构造子311
B11.3.7 域初始化式311
B11.4 结构的例子312
B11.4.1 数据库整类型312
B11.4.2 数据库布尔类型313
B12章 数组316
B12.1 数组类型316
B12.3 数组元素访问317
B12.4 数组成员317
B12.5 数组协变317
B12.2 数组创建317
B12.1.1 System.Array类型317
B12.6 数组初始化式318
B13章 接口320
B13.1 接口声明320
B13.1.1 接口修饰符320
B13.1.2 基接口320
B13.1.3 接口体321
B13.2 接口成员321
B13.2.1 接口方法322
B13.2.2 接口性质322
B13.2.5 接口成员访问323
B13.2.3 接口事件323
B13.2.4 接口索引器323
B13.3 接口成员的完全限定名325
B13.4 接口实现326
B13.4.1 显式接口成员实现327
B13.4.2 接口映射329
B13.4.3 接口实现继承331
B13.4.4 接口再实现333
B13.4.5 抽象类和接口334
B14.1 枚举声明336
B14章 枚举336
B14.2 枚举修饰符337
B14.3 枚举成员337
B14.4 枚举值和操作339
B15章 委派341
B15.1 委派声明341
B15.2 委派实例化343
B15.3 委派调用343
B16.2 类System.Exception346
B16.3 异常怎样处理346
B16章 异常346
B16.1 异常的产生346
B16.4 通用异常类347
B17章 属性348
B17.1 属性类348
B17.1.1 属性用法348
B17.1.2 位置和命名参数349
B17.1.3 属性参数类型350
B17.2 属性规范350
B17.3 属性实例353
B17.4 保留的属性354
B17.4.1 属性AttributeUsage354
B17.3.1 属性的编译354
B17.3.2 运行时属性实例的再查354
B17.4.2 Conditional属性355
B17.4.3 Obsolete属性357
附录BA 不安全代码359
BA.1 不安全上下文359
BA.2 指针类型362
BA.3 固定的和可移动的变量364
BA.4 指针转换364
BA.5.2 指针成员访问366
BA.5.1 指针间接寻址366
BA.5 表达式中的指针366
BA.5.3 指针元素访问367
BA.5.4 取地址操作符368
BA.5.5 指针增量和减量369
BA.5.6 指针算术369
BA.5.7 指针比较370
BA.5.8 sizeof操作符370
BA.6 固定语句371
BA.7 堆栈分配374
BA.8 动态存储分配375
BB.2 ComImport属性378
BB 可交互操作性378
BB.1 ComAliasName属性378
BB.3 ComRegisterFunction属性379
BB.4 ComSourceInterface属性379
BB.5 ComUnregisterFunction属性379
BB.6 ComVisible属性380
BB.7 DispId属性380
BB.8 DllImport属性380
BB.9 FieldOffset属性381
BB.12 ImportedFromTypeLib属性382
BB.10 Guid属性382
BB.11 HasDefaultInterface属性382
BB.13 In和Out属性383
BB.14 IndexerName属性383
BB.15 InterfaceType属性384
BB.16 MarshalAs属性384
BB.17 NoIDispatch属性385
BB.18 PreserveSig属性385
BB.19 StructLayout属性385
BB.22 TypeLibVar属性386
BB.21 TypeLibType属性386
BB.20 TypeLibFunc属性386
BB.23 枚举支持387
BC 文法390
BC.1 词法文法390
BC.1.1 行终结符390
BC.1.2 空白390
BC.1.3 注释391
BC.1.4 标记391
BC.1.5 泛代码转义序列391
BC.1.7 关键字392
BC.1.6 标识符392
BC.1.8 字面量393
BC.1.9 操作符和标点符号395
BC.1.10 预处理指令395
BC.2 语法文法397
BC.2.1 基本概念397
BC.2.2 类型397
BC.2.3 变量399
BC.2.4 表达式399
BC.2.5 语句402
BC.2.6 类406
BC.2.7 结构412
BC.2.8 数组412
BC.2.9 接口413
BC.2.10 枚举414
BC.2.11 委派414
BC.2.12 属性415
BC.3 不安全代码的语法扩展416
BC.3.1 不安全上下文416
C1章 C#编程的基本知识420
C1.1 .NET框架基本类420
C篇 C#编程入门420
C1.2 对象的公共方法421
C1.2.1 ToString()421
C1.2.2 Equals()423
C1.2.3 哈希表和GetHashCode()425
C1.3 System.Array和集组类427
C1.3.1 排序和查找427
C1.3.2 ICloneable438
C1.3.3 框架类的方法和接口440
C1.4.1 数字格式化441
C1.4 格式化441
Cl.4.2 时间日期格式444
Cl.5 流对象445
C1.5.1 基本流操作445
Cl.5.2 字节类型446
Cl.5.3 读写器446
C1.5.4 格式器448
C1.5.5 流450
C1.6 调试类451
C1.6.1 条件方法451
C1.6.2 Debug和Trace类452
C1.6.3 使用切换控制Debug和Trace455
Cl.7 小结460
C2.1 命令行编译461
C2章 C#的编程和编译环境461
C2.2 VS.NET IDE概述463
C2.2.1 Start页463
C2.2.2 标签式和自动隐藏窗口464
C2.2.3 解决方案浏览器(Solution Explorer)464
C2.2.4 类视图(Class View)465
C2.2.5 性质窗口(Properties Window)465
C2.2.6 工具箱(Toolbox)465
C2.2.7 服务器探查器(Server Explorer)466
C2.3.1 项目和方案(Projects and Solutions)467
C2.3 创建项目467
C2.3.2 向导和项目类型468
C2.4 编写代码469
C2.4.1 代码窗口469
C2.4.2 代码折叠471
C2.4.3 导航语法(Intellisense)471
C2.4.4 对象浏览器(Object Browser)473
C2.4.5 引用构件和控件473
C2.4.6 引用外部控件473
C2.5.2 任务列表(Task List)474
C2.5 编译代码474
C2.5.1 输出窗口(Output)474
C2.6 调试代码476
C2.6.1 命令窗口(Command)477
C2.6.2 查看窗口(Watch)477
C2.6.3 本地窗口(Locals)478
C2.6.4 Autos窗口478
C2.6.5 This窗口478
C2.6.6 调用栈窗口(Call Stack)478
C2.6.9 内存窗口(Memory)479
C2.6.8 反汇编窗口(Disassembly)479
C2.6.7 断点窗口(Breakpoints)479
C2.7 定制VS.NET480
C2.7.1 自定义风格480
C2.7.2 过滤帮助481
C2.7.3 选项窗口481
C2.7.4 自定义工具条483
C2.8 其它VS.Net特性483
C2.8.1 宏浏览器(Macro Explorer)484
C2.8.2 插件管理器(Add一InManager)484
C2.9 WinForm编程485
C2.8.3 HTML,Xml,CSS编辑485
C2.9.1 什么是Win Forms486
C2.9.2 在VS.NET中创建WinForms应用487
C2.9.3 其他特性491
C2.10 小结492
C3章 构件编程的基本概念494
C3.1 构件与接口494
C3.2 构件编程模式497
C3.3 C#为设计构件提供的特征499
C3.3.1 性质499
C3.2.2 索引器502
C3.3.3 委派/事件503
C3.4 设计构件507
C3.4.1 .NET Framework构件507
C3.4.2 定制元数据508
C3.4.3 性质浏览器接口509
C3.5 构件设计器515
C3.5.1 访问设计器服务和基础结构517
C3.5.2 为构件授予许可证517
C3.6 构件与型519
C3.6.2 适配器adapter520
C3.6.1 抽象服务器abstract server520
C3.6.3 观察器observer522
C3.6.4 桥bridge525
C3.6.5 抽象工厂abstract factory527
C3.7 小结530
C4章 组装和清单531
C4.1 .NET框架下构件组装531
C4.1.1 组装的组成531
C4.1.2 两类组装532
C4.1.3 组装的好处533
C4.2.1 库项目534
C4.2 创建一个DLL组装534
C4.2.2 客户端536
C4.3 使用ILDasm查看组装538
C4.4 共享名541
C4.5 全局共享库541
C4.6 专用组装到共享组装的转换541
C4.6.1 生成密钥对541
C4.6.2 对组装签名542
C4.6.3 放入全局库543
C4.7 替换密钥文件543
C4.8.1 继承544
C4.8 跨语言特性544
C4.8.2 调试547
C4.9 小结549
C5章 多线程编程550
C5.1 线程的基本概念550
C5.2 创建线程551
C5.3 线程状态553
C5.4 线程结束555
C5.5 线程同步557
C5.7 小结560
C5.6 线程的优先权560
C6章 网络编程561
C6.1 System.NET类概貌561
C6.1.1 请求/回应模型562
C6.1.2 HTTP/UDP/TCP/SOCKET562
C6.1.3 TCP和UDP563
C6.1.4 Sockets564
C6.2 网络资源交互565
C6.3 特性深入观察566
C6.3.1 请求/回应模型的特性566
C6.3.2 HTTP相关类的特性567
C6.3.3 TCP和UDP类的特性569
C6.4 小结572
C7章 分布式编程573
C7.1 远程及代理对象573
C7.2 通道575
C7.3 对象激活576
C7.4 租约生命周期577
C7.5 两个例子579
C7.5.1 使用TCP通道的远程例子579
C7.5.2 使用HTTP通道的远程例子581
C7.6 小结583
C8.1 ADO到ADO.Net584
C8章 ADO.Net584
C8.2 ADO对象模型585
C8.3 DataSet587
C8.3.1 受管提供器588
C8.3.2 用SQL受管提供器读数据库589
C8.3.3 读入Access数据库591
C8.3.4 得到列的信息591
C8.3.5 利用DataGrid自动显示593
C8.3.6 修改数据594
C8.3.7 RowStates597
C8.3.8 使用DataReader598
C8.3.9 用.Net连接数据库599
C8.4 与XML交互602
C8.4.1 写Xml文件603
C8.4.2 读XML文件604
C8.4.3 XmlDataDocument604
C8.5 小结606
C9章 与XML交互607
C9.1 .NET的System.Xml607
C9.2 XML读写器608
C9.2.1 抽象基类609
C9.2.2 XmlReader610
C9.2.3 XmlTextReader和其它Reader616
C9.2.4 XmlWriter和XmITextWriter623
C9.3 Xml DOM实现624
C9.3.1 遍历和XmlNavigator626
C9.3.2 DocumentNavigator628
C9.3.3 转化XslTransform629
C9.4 XML注释630
C9.4.1 元素简单描述630
C9.4.2 备注和表单632
C9.4.3 参数描述635
C9.4.4 实例提供636
C9.4.5 属性描述638
C9.4.6 编译文档640
C9.5 小结640
C10章 与COM和本地资源交互641
C10.1 COM与.NET641
C10.1.1 类型库中生成元信息641
C10.1.2 束定和调用COM构件644
C10.1.3 其它接口访问和发现动态类型644
C10.1.4 COM对象的晚束定645
C10.1.5 ActiveX控件647
C10.1.6 理解COM线程模型和套间648
C10.1.7 COM中调用.NET构件649
C10.2 CLR对COM的改进651
C10.2.1 COM中的类型信息限制651
C10.2.2 CLR新体验653
C10.3 本地资源交互662
C10.3.1 不安全和非受管代码662
C10.3.2 平台请求服务663
C10.3.3 其它细节663
C10.4 小结664
参考文献666
热门推荐
- 2004850.html
- 654934.html
- 2933672.html
- 1110185.html
- 2937558.html
- 1387510.html
- 752194.html
- 1240771.html
- 1628003.html
- 578705.html
- http://www.ickdjs.cc/book_3060993.html
- http://www.ickdjs.cc/book_2807306.html
- http://www.ickdjs.cc/book_2431989.html
- http://www.ickdjs.cc/book_1115026.html
- http://www.ickdjs.cc/book_1553632.html
- http://www.ickdjs.cc/book_3763167.html
- http://www.ickdjs.cc/book_292437.html
- http://www.ickdjs.cc/book_1320365.html
- http://www.ickdjs.cc/book_2196310.html
- http://www.ickdjs.cc/book_2500362.html