图书介绍

更锋利的C#代码 编写高质量C#程序2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

更锋利的C#代码 编写高质量C#程序
  • 包善东著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302179429
  • 出版时间:2008
  • 标注页数:326页
  • 文件大小:63MB
  • 文件页数:345页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

更锋利的C#代码 编写高质量C#程序PDF格式电子书版下载

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

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

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

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

图书目录

第1章 基本的代码风格1

1.1换行的讲究1

寻找最佳的断行位置2

每行只写一条语句4

分行定义变量4

1.2避免代码过于拥挤5

使用空行分隔代码块5

使用空格降低代码密度8

1.3如何缩进10

嵌套或包含关系引起的缩进11

因换行而产生的缩进14

使用空格还是Tab键15

1.4大括号15

大括号的位置16

空的大括号结构17

仅包含单个语句的结构体19

1.5保持项目文件的条理性21

解决方案的结构呼应21

代码文件的结构22

使用#region标记来隐藏细节24

第2章 养成良好的注释习惯25

2.1何时需要注释25

解释代码的意图26

对局部变量的说明26

充当代码标题27

指出例外情况30

开发过程的提示30

2.2注释的格式31

单行注释32

多行注释33

2.3正确使用XML文档注释34

结构与类的XML文档注释36

属性的XML文档注释37

方法的XML文档注释38

构造函数的XML文档注释39

事件的XML文档注释40

枚举类型的XML文档注释41

泛型的XML文档注释42

其他标记43

第3章 一般命名规范45

3.1 选用合适的名称45

使用字符的限制46

使用含义明确的英语47

3.2大小写规则49

Pascal规则49

Camel规则49

首字母缩写词与简写词50

应在何时使用何种大小写规则52

3.3考虑跨语言编程54

不要通过大小写区分标识符54

避免与其他语言的关键字重复55

避免使用特定语言的术语55

3.4命名一致与冲突57

大小写无关原则57

对基类型的命名暗示58

对参数与属性的关系暗示60

属性名称与自身类型同名62

与命名空间相关的命名冲突63

3.5匈牙利命名法65

匈牙利命名法的弊端66

考虑为控件应用匈牙利命名法67

第4章 处理数据69

4.1关于数据类型69

整数69

浮点数71

布尔类型74

字符与字符串74

4.2变量的使用77

尽可能使用内置关键字77

初始化一切变量78

集中使用变量79

4.3使用枚举83

何时使用枚举84

如何为枚举命名87

关于枚举项89

标记枚举90

4.4魔数——以字面数值出现在代码中的常量92

4.5复杂的表达式93

运算符的副作用94

简化表达式95

第5章 分支结构98

5.1使用if结构98

“=”与“=”的问题98

如何处理复杂的条件100

5.2使用switch结构103

break语句103

使用default子句要注意的问题105

5.3选择if还是switch?107

5.4关于判断顺序的设计109

先判断最有可能成立的条件110

预防因条件短路而丢失操作113

5.5慎用goto语句114

第6章 循环结构117

6.1使用for还是while117

for和while的语义比较117

简单的数值迭代——for和while的思维模式的差异118

预知循环次数——微波炉加热的启示121

集合迭代——独特的foreach结构122

6.2循环变量的使用123

循环变量的命名123

循环变量的定义124

避免循环变量的非常规应用125

6.3提高循环效率127

避免不必要的重复劳动127

避免不必要的循环127

第7章 如何使用函数129

7.1为什么要使用函数129

函数与方法129

代码复用130

隐藏细节——使用函数进行抽象132

7.2函数重载135

重载的语义——为调用者提供方便135

保持核心代码唯一139

7.3参数的设计142

参数的命名142

不要使用保留项142

何时使用变长参数列表143

何时使用ref参数和out参数145

参数的顺序146

重载函数的参数一致性体现146

7.4参数检查的必要性150

检查零值及空引用150

检查枚举类型151

防止数据被篡改152

在何处检查合法性153

7.5函数的出口——离开函数的三种方式154

返回值的用法155

离开函数的时机156

第8章 结构与类159

8.1结构与类的比较159

值类型与引用类型159

何时应当使用结构160

何时应当使用类160

8.2结构与类的命名161

措辞161

避免与命名空间冲突161

不要使用“C”前缀162

后缀的使用162

8.3如何搭建一个典型的结构164

找准核心数据164

数据的表现形式165

定义等价原则166

实现基本运算168

8.4如何真正面向对象169

第9章 封装175

9.1构造函数175

构造函数的语义175

何时使用静态构造方法177

构造函数的参数及其初始化178

9.2 Finalize函数181

垃圾回收器181

IDisposable接口——显式释放资源的方法181

释放资源的一般范式184

9.3何时应该使用字段185

存储核心数据186

维持中间结果187

常量字段188

9.4如何使用字段189

字段的命名189

访问控制190

9.5何时应该使用属性192

属性的语义192

数据访问控制193

需要的后续操作194

简单的数据处理194

预定义的对象实例195

9.6如何使用属性195

属性的命名195

访问控制198

提供合理的默认值199

保持轻量级的操作199

在属性中抛出异常199

9.7何时应该使用方法200

表示某种操作200

耗时的任务——方法在形式上的暗示作用201

有副作用的操作202

返回不确定的值203

返回数组或集合对象203

9.8如何使用方法205

方法的命名206

检查传入的参数206

9.9静态类型及成员206

9.10嵌套类型及其适用场合206

9.11可变类型的安全性208

9.12使用程序集与命名空间210

程序集的划分210

为什么要使用命名空间210

命名空间的命名211

命名空间的管理212

第10章 继承与多态214

10.1如何利用类继承214

自上而下逐步细化214

自下而上逐步抽象217

10.2继承限制222

强制继承的抽象类型222

密封类型222

扩展方法——直接向已有类型添加功能223

10.3关于接口224

接口的语义224

接口的命名225

使用接口还是类继承225

10.4何时应当显式实现接口227

解决接口之间的命名冲突227

提供强类型操作228

隐藏仅用于通过接口访问的成员229

10.5使用多态230

何时应进行重写230

应当重写哪个成员230

保持参数名称一致233

10.6运算符重载233

可重载的运算符233

符合运算符的本意235

运算符的关联性235

类型转换运算符的重载236

第11章 泛型机制237

11.1装箱与取消装箱237

11.2何时使用泛型238

11.3泛型的类型参数设计239

类型参数的命名239

使用类型参数的时机241

第12章 事件与委托244

12.1何为事件驱动模式244

12.2如何响应事件245

事件处理函数246

代码的分配248

事件侦听器的使用250

12.3如何提供事件255

何时应当提供事件256

事件的命名256

传递与事件相关的数据257

用于事件的委托及其要遵守的约定259

触发事件260

12.4使用委托261

何时使用委托261

何时使用匿名方法261

基类型与派生类型263

第13章 集合类型264

13.1系统内置集合类型264

数组264

列表266

字典266

其他类型267

13.2选用适当的集合类型要考虑的几个方面267

容量267

进出次序268

定位的问题——索引/键访问268

元素结构269

排序271

13.3性能比较272

13.4提供自己的集合类型274

何时应提供集合类型274

集合类型的命名276

提供与内置集合类型一致的行为276

索引器及其应遵守的规则278

迭代器279

第14章 LINQ查询282

14.1提高LINQ查询的效率282

查询语法和方法语法的区别282

LINQ查询的创建、执行与性能284

减少返回的数据量285

14.2 LINQ中的错误处理——采用防御式编程286

14.3 LINQ查询的相关机制288

匿名类型288

隐式类型的局部变量289

Lambda表达式与匿名函数290

第15章 异常292

15.1处理异常时应遵守的规范292

15.2抛出异常296

异常的语义296

不应使用异常的位置298

控制异常298

异常的重新抛出——重新包装时要注意的300

15.3选用合适的异常类型303

常见的异常类型303

不应使用的异常类型304

15.4异常提示信息305

15.5设计自定义异常及应遵循的约定305

第16章 全球化与本地化309

16.1分离与特定区域相关的信息309

16.2处理特定区域性的数据312

区分区域性与界面区域性312

在内部使用Unicode312

文本的比较与排序313

不要假定区域性的行为315

16.3何时使用固定区域性316

16.4用户界面应注意的细节316

使用资源317

术语318

界面布局318

歧义320

组合文本320

附录A: C#、 VB.NET、 J#关键字表323

附录B:常用的异常类型325

热门推荐