《C#编程语言详解》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Anders Hejlsberg等著;张晓坤等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:7121002280
  • 页数:482 页
图书介绍:C#是一门简单、现代、优雅、面向对象、类型安全、平台独立的组件编程语言,是.NET的关键性语言,也是整个.NET平台的基础,它使程序员能快速地为新一代Microsoft .NET平台开发出应用程序。全书以通俗易懂的语言,精辟丰富的实例,从对C#的简介开始,全面讲解了C#编程语言规范以及各个层面的特性,内容包括C#的词法结构、类型、变量、表达式、类、结构、不安全代码、泛型等等。本书内容详实,实用性强,适合作为高等院校学生学习编程语言的教材,也是希望深入探索C#编程知识的广大程序开发人员绝佳的技术参考书。

第一篇C#1.0 1

第1章C#简介 3

1.1 Hello World 3

1.2程序结构 4

1.3类型和变量 6

1.4表达式 8

1.5语句 9

1.6类和对象 12

1.6.1成员 13

1.6.2可访问性 14

1.6.3基类 14

1.6.4字段 15

1.6.5方法 15

1.6.6其他函数成员 21

1.7结构 25

1.8数组 27

1.9接口 28

1.10枚举 29

1.11委托 31

1.12特性 32

第2章词法结构 34

2.1程序 34

2.2文法 34

2.2.1文法表示法 34

2.2.2词法文法 35

2.2.3句法文法 35

2.3词法分析 36

2.3.1行结束符 36

2.3.2空白 37

2.3.3注释 37

2.4标记 38

2.4.1 Unicode字符转义序列 39

2.4.2标识符 39

2.4.3关键字 41

2.4.4文本 42

2.4.5运算符和标点 47

2.5预处理指令 47

2.5.1条件编译符号 48

2.5.2预处理表达式 49

2.5.3声明指令 50

2.5.4条件编译指令 51

2.5.5诊断指令 53

2.5.6区域指令 54

2.5.7行指令 55

第3章基本概念 56

3.1应用程序启动 56

3.2应用程序终止 57

3.3 声明 57

3.4成员 59

3.4.1命名空间成员 59

3.4.2结构成员 60

3.4.3枚举成员 60

3.4.4类成员 60

3.4.5接口成员 60

3.4.6数组成员 61

3.4.7委托成员 61

3.5成员访问 61

3.5.1 已声明可访问性 61

3.5.2可访问域 62

3.5.3实例成员的受保护访问 64

3.5.4可访问性约束 65

3.6签名和重载 66

3.7范围 66

3.7.1通过嵌套隐藏 69

3.7.2通过继承隐藏 69

3.8命名空间和类型名称 70

3.9自动内存管理 72

3.10执行顺序 75

第4章类型 76

4.1值类型 76

4.1.1 System.ValueType类型 77

4.1.2默认构造函数 77

4.1.3结构类型 78

4.1.4简单类型 78

4.1.5整型 79

4.1.6浮点型 80

4.1.7 decimal类型 81

4.1.8 bool类型 82

4.1.9枚举类型 82

4.2引用类型 82

4.2.1类类型 83

4.2.2对象类型 84

4.2.3 string类型 84

4.2.4接口类型 84

4.2.5数组类型 84

4.2.6委托类型 84

4.3装箱和取消装箱 85

4.3.1装箱转换 85

4.3.2取消装箱转换 86

第5章变量 87

5.1变量类别 87

5.1.1静态变量 87

5.1.2实例变量 88

5.1.3数组元素 88

5.1.4值参数 88

5.1.5引用参数 88

5.1.6输出参数 89

5.1.7局部变量 89

5.2默认值 90

5.3明确赋值 90

5.3.1初始已赋值变量 91

5.3.2初始未赋值变量 91

5.3.3确定明确赋值的细则 91

5.4变量引用 101

5.5变量引用的原子性 101

第6章转换 102

6.1 隐式转换 102

6.1.1标识转换 102

6.1.2隐式数值转换 102

6.1.3隐式枚举转换 103

6.1.4隐式引用转换 103

6.1.5装箱转换 104

6.1.6隐式常数表达式转换 104

6.1.7用户定义的隐式转换 104

6.2显式转换 104

6.2.1显式数值转换 105

6.2.2显式枚举转换 106

6.2.3显式引用转换 106

6.2.4取消装箱转换 107

6.2.5用户定义的显式转换 107

6.3标准转换 107

6.3.1标准隐式转换 107

6.3.2标准显式转换 108

6.4用户定义的转换 108

6.4.1允许的用户定义转换 108

6.4.2用户定义的转换的计算 108

6.4.3用户定义的隐式转换 109

6.4.4用户定义的显式转换 110

第7章表达式 112

7.1表达式的分类 112

7.2运算符 113

7.2.1运算符的优先级和顺序关联性 113

7.2.2运算符重载 114

7.2.3一元运算符重载决策 115

7.2.4二元运算符重载决策 116

7.2.5候选用户定义运算符 116

7.2.6数值提升 116

7.3成员查找 118

7.4函数成员 119

7.4.1参数列表 120

7.4.2重载决策 123

7.4.3函数成员调用 125

7.5基本表达式 126

7.5.1文本 127

7.5.2简单名称 127

7.5.3带括号的表达式 128

7.5.4成员访问 129

7.5.5调用表达式 131

7.5.6元素访问 132

7.5.7 this访问 134

7.5.8 base访问 134

7.5.9后缀增量和后缀减量运算符 135

7.5.10 new运算符 136

7.5.11 typeof运算符 140

7.5.12 checked和unchecked运算符 141

7.6一元运算符 143

7.6.1一元加运算符 143

7.6.2一元减运算符 144

7.6.3逻辑否定运算符 144

7.6.4按位求补运算符 145

7.6.5前缀增量和减量运算符 145

7.6.6强制转换表达式 146

7.7算术运算符 146

7.7.1乘法运算符 147

7.7.2除法运算符 148

7.7.3余数运算符 149

7.7.4加法运算符 150

7.7.5减法运算符 152

7.8移位运算符 153

7.9关系和类型测试运算符 155

7.9.1整数比较运算符 155

7.9.2浮点比较运算符 156

7.9.3小数比较运算符 157

7.9.4布尔相等运算符 157

7.9.5枚举比较运算符 157

7.9.6引用类型相等运算符 158

7.9.7字符串相等运算符 159

7.9.8委托相等运算符 159

7.9.9 is运算符 160

7.9.10 as运算符 160

7.10逻辑运算符 161

7.10.1整数逻辑运算符 161

7.10.2枚举逻辑运算符 162

7.10.3布尔逻辑运算符 162

7.11条件逻辑运算符 162

7.11.1布尔条件逻辑运算符 163

7.11.2用户定义的条件逻辑运算符 163

7.12条件运算符 164

7.13赋值运算符 165

7.13.1简单赋值 165

7.13.2复合赋值 167

7.13.3事件赋值 168

7.14表达式 168

7.15常数表达式 168

7.16布尔表达式 169

第8章语句 170

8.1 结束点和可到达性 170

8.2块 172

8.3空语句 173

8.4标记语句 173

8.5声明语句 174

8.5.1局部变量声明 174

8.5.2局部常数声明 175

8.6表达式语句 175

8.7选择语句 176

8.7.1 if语句 176

8.7.2 switch语句 177

8.8迭代语句 181

8.8.1 while语句 181

8.8.2 do语句 181

8.8.3 for语句 182

8.8.4 foreach语句 183

8.9跳转语句 185

8.9.1 break语句 186

8.9.2 continue语句 187

8.9.3 goto语句 187

8.9.4 return语句 188

8.9.5 throw语句 189

8.10 try语句 190

8.11 checked语句和unchecked语句 193

8.12 1ock语句 193

8.13 using语句 194

第9章命名空间 197

9.1编译单元 197

9.2命名空间声明 197

9.3 using指令 199

9.3.1 using别名指令 199

9.3.2 using命名空间指令 201

9.4命名空间成员 203

9.5类型声明 204

第10章类 205

10.1类声明 205

10.1.1类修饰符 205

10.1.2类基规范 207

10.1.3类体 208

10.2类成员 208

10.2.1继承 209

10.2.2 new修饰符 210

10.2.3访问修饰符 210

10.2.4构成类型 210

10.2.5静态成员和实例成员 211

10.2.6嵌套类型 212

10.2.7保留成员名称 215

10.3常数 217

10.4字段 218

10.4.1静态字段和实例字段 220

10.4.2 只读字段 220

10.4.3易失字段 221

10.4.4字段初始化 223

10.4.5变量初始值设定项 223

10.5方法 226

10.5.1方法参数 227

10.5.2静态方法和实例方法 233

10.5.3虚拟方法 233

10.5.4重写方法 235

10.5.5密封方法 237

10.5.6抽象方法 237

10.5.7外部方法 239

10.5.8方法体 239

10.5.9方法重载 240

10.6属性 240

10.6.1静态属性和实例属性 241

10.6.2访问器 241

10.6.3虚拟、密封、重写和抽象访问器 246

10.7事件 247

10.7.1类似字段的事件 249

10.7.2事件访问器 250

10.7.3静态事件和实例事件 252

10.7.4虚拟、密封、重写和抽象访问器 252

10.8索引器 252

10.9运算符 256

10.9.1 一元运算符 257

10.9.2二元运算符 258

10.9.3转换运算符 259

10.10实例构造函数 260

10.10.1构造函数初始值设定项 261

10.10.2实例变量初始值设定项 262

10.10.3构造函数执行 262

10.10.4默认构造函数 264

10.10.5私有构造函数 264

10.10.6可选的实例构造函数参数 265

10.11静态构造函数 265

10.12析构函数 267

第11章结构 270

11.1结构声明 270

11.1.1结构修饰符 270

11.1.2结构接口 271

11.1.3结构体 271

11.2结构成员 271

11.3类和结构的区别 272

11.3.1值语义 272

11.3.2继承 273

11.3.3赋值 273

11.3.4默认值 273

11.3.5装箱和取消装箱 274

11.3.6 this的意义 274

11.3.7字段初始值设定项 274

11.3.8构造函数 275

11.3.9析构函数 276

11.4结构示例 276

11.4.1数据库整数类型 276

11.4.2数据库布尔类型 277

第12章数组 280

12.1数组类型 280

12.2数组创建 281

12.3数组元素访问 281

12.4数组成员 281

12.5数组协方差 281

12.6数组初始值设定项 282

第13章接口 284

13.1接口声明 284

13.1.1接口修饰符 284

13.1.2基接口 285

13.1.3接口体 285

13.2接口成员 285

13.2.1接口方法 286

13.2.2接口属性 287

13.2.3接口事件 287

13.2.4接口索引器 287

13.2.5接口成员访问 288

13.3完全限定接口成员名 289

13.4接口实现 290

13.4.1显式接口成员实现 291

13.4.2接口映射 293

13.4.3接口实现继承 295

13.4.4接口重新实现 297

13.4.5抽象类和接口 298

第14章枚举 299

14.1枚举声明 299

14.2枚举修饰符 300

14.3枚举成员 300

14.4 System.Enum类型 302

14.5枚举值和运算 302

第15章委托 303

15.1委托声明 303

15.2委托实例化 305

15.3委托调用 306

第16章异常 308

16.1导致异常的原因 308

16.2 System.Exception类 308

16.3异常的处理方式 309

16.4公共异常类 309

第17章特性 311

17.1特性类 311

17.1.1特性用法 311

17.1.2定位和命名参数 312

17.1.3特性参数类型 313

17.2特性专用化 314

17.3特性实例 318

17.3.1特性的编译 319

17.3.2特性实例的运行时检索 319

17.4保留特性 319

17.4.1 AttributeUsage特性 320

17.4.2 Conditional特性 320

17.4.3 Obsolete特性 323

17.5互操作的特性 324

17.5.1 与COM和Win32组件的互操作 324

17.5.2 与其他.NET语言的交互操作 324

第1 8章不安全代码 325

18.1 不安全上下文 325

18.2指针类型 328

18.3固定变量和可移动变量 330

18.4指针转换 331

18.5表达式中的指针 332

18.5.1指针间接寻址 332

18.5.2指针成员访问 333

18.5.3指针元素访问 334

18.5.4 address-of运算符 335

18.5.5指针增加和指针减小 335

18.5.6指针算法 336

18.5.7指针比较 337

18.5.8 sizeof运算符 337

18.6固定语句 338

18.7堆栈分配 341

18.8动态内存分配 342

第二篇C#2.0 345

第19章C#2.0介绍 347

19.1 泛型 347

19.1.1 为什么使用泛型 347

19.1.2创建和使用泛型 348

19.1.3泛型类型实例化 349

19.1.4约束 350

19.1.5泛型方法 351

19.2匿名方法 352

19.3迭代器 354

19.4不完整类型 358

第20章泛型 360

20.1泛型类声明 360

20.1.1类型参数 360

20.1.2实例类型 362

20.1.3基类规范 362

20.1.4泛型类的成员 363

20.1.5泛型类中的静态字段 363

20.1.6泛型类中的静态构造函数 364

20.1.7访问受保护的成员 364

20.1.8在泛型类中重载 365

20.1.9参数数组方法和类型参数 366

20.1.10重写和泛型类 366

20.1.11泛型类中的运算符 367

20.1.12泛型类中的嵌套类型 368

20.1.13应用程序入口点 369

20.2泛型结构声明 369

20.3泛型接口声明 369

20.3.1 实现接口的惟一性 370

20.3.2显式接口成员实现 370

20.4泛型委托声明 371

20.5构造类型 371

20.5.1类型实参 373

20.5.2开放类型和封闭类型 373

20.5.3构造类型的基类和接口 373

20.5.4构造类型的成员 374

20.5.5构造类型的可访问性 375

20.5.6转换 375

20.5.7 System.Nullable<T>类型 376

20.5.8使用别名指令 376

20.5.9特性 376

20.6泛型方法 377

20.6.1泛型方法签名 378

20.6.2虚拟泛型方法 379

20.6.3调用泛型方法 379

20.6.4类型实参推断 379

20.6.5语法歧义 381

20.6.6对委托使用泛型方法 381

20.6.7非泛型属性、事件、索引器或运算符 382

20.7约束 382

20.7.1满足约束 384

20.7.2类型参数上的成员查找 385

20.7.3类型参数和装箱 385

20.7.4包含类型参数的转换 387

20.8表达式和语句 388

20.8.1默认值表达式 388

20.8.2对象创建表达式 389

20.8.3 typeof运算符 389

20.8.4引用相等运算符 390

20.8.5 is运算符 390

20.8.6 as运算符 390

20.8.7异常语句 391

20.8.8 lock语句 391

20.8.9 using语句 391

20.8.10 foreach语句 391

20.9查找规则修订 392

20.9.1命名空间和类型名称 392

20.9.2成员查找 393

20.9.3简单名称 395

20.9.4成员访问 396

20.9.5方法调用 397

20.9.6委托创建表达式 399

20.10右移语法改变 399

第21章匿名方法 401

21.1匿名方法表达式 401

21.2匿名方法签名 401

21.3匿名方法转换 402

21.4匿名方法块 403

21.5外部变量 404

21.5.1捕获外部变量 404

21.5.2局部变量实例化 405

21.6匿名方法求值 407

21.7委托实例相等性 407

21.8明确赋值 408

21.9方法组转换 408

21.10实现示例 409

第22章迭代器 412

22.1迭代器块 412

22.1.1枚举器接口 412

22.1.2可枚举接口 412

22.1.3 yield类型 412

22.1.4 this访问 413

22.2枚举对象 413

22.2.1 MoveNext方法 414

22.2.2 Current属性 415

22.2.3 Dispose方法 415

22.3可枚举对象 415

22.4 yield语句 416

22.5实现示例 418

第23章不完整类型 422

23.1不完整类型声明 422

23.1.1特性 423

23.1.2修饰符 423

23.1.3类型参数和约束 423

23.1.4基类 424

23.1.5基接口 424

23.1.6成员 425

23.2名称绑定 425

第三篇附录 427

附录A文档注释 429

附录B语法 447