请输入您要查询的百科知识:

 

词条 叩响C#之门
释义

本书写给完全没有编程经验的初学者。它从最基本的C#语法开始,采用逐步构建的学习方法,一步一步地深入到C#编程的核心概念。当C#语法基础打扎实后,即进入窗体编程的学习,这样读者就有了比较丰富的编程体验,此时进入委托、线程、程序集等深层次概念的学习,便水到渠成、轻松易懂。本书针对初学者,因为不太久以前作者也是一个初学者,与初学者思维相近,心灵相通,知道初学者的困惑之处,相信学完此书之后,你不光能牢固地掌握C#的基础语法,更能深刻地体会到C#的核心思想。

图书信息

作 者:梁斌玉 编著

出 版 社: 电子工业出版社

出版时间: 2009-7-1

页 数:496页

开 本: 16开

I S B N :9787121090899

定价:59.00元(含光盘1张)

前 言

这是一部花费五年时间写成的著作,千锤百炼写就、心血凝结而成。

这是一部面向初学者的著作,因为写此书之前我也是一个初学者。正因为如此我懂得初学者在想什么,懂得初学者需要什么与初学者思维相近,心灵相通,故能针对初学者的困惑之处着笔。看完这本书你并不能马上成为绝顶高手,但能帮你快速地掌握编程的基本概念和基本思想,为深入学习打下扎实的基础。我希望你看完这本书后,再也不用为不知如何踏入编程的殿堂而彷徨,再也不用为书籍中繁多的名词术语而迷茫,能够轻松地阅读别人的代码,踏上高手之路。

之所以说是心血凝结而成,是因为这部著作不但耗费了巨大的时间和精力,而且融入了我多年的学习体会和教学思想。

本书的特点

1.知初学者之需我是一名高中数学教师,在教学过程中我发现,让学生替我讲题往往会收到很好的效果。究其原因,并非学生讲得多么精彩,而是学生间的思维层次相同,该学生重点讲解之处就是其他学生困惑之处。因此,我在编写本书时,尽力回想自己学习时的体验,以己推人,了解初学者的困惑。幸好,我在学习C#之初做了大量的笔记,写下了不少困惑和感受,这对我编写本书大有裨益。

2.逐步构建知识学习知识有两种基本方法,一种方法是先对整体概述,然后逐步细化。如果学习者对所学领域有一定认识,生活中有一定的体验,就适合这种方法。另一种方法是由最简单的知识出发,逐步添加内容,最后构建成一个整体。如果学习者对所学领域非常陌生,就适合这种方法。编程,现实生活中没有体验,对初学者来说是非常陌生和抽象的事物,所以本书并没有像其他教材那样开篇即对.NET框架展开大篇幅论述(成堆的陌生概念会让人望而生畏,我刚接触C#时就是这种感觉),而是简单介绍后就采用逐步构建的方法来学习。对于每个知识点,先指导学习者编写一些简单小程序,获得感性体验,然后透过现象看本质,讲解其背后蕴涵的道理。随着内容的不断添加,最终构建成完整的知识体系。

3.例子典型简单 要想知道苹果的味道,只需要尝一口即可,要想学好编程,就要不断练习。所以本书通过大量贴切的例子来讲解概念。这些例子精心构思,巧妙设计,为了一个例子,我常常琢磨数月,以确保它典型、简单,一目了然。

4.结构编排合理 C#语言体系庞大,知识繁杂,概念互相交叉。为此,我在结构编排上花费了很多心思,理清了概念间的顺序,让这些概念按逻辑顺序逐一展现。并且编排中也考虑了读者的兴趣,内容难易交错,跌宕起伏,读者一路学习下来,会很有成就感。

5.语言简洁通顺啰里啰唆的行文会妨碍读者理解,因此每段话都我都追求逻辑连贯,含义准确,千锤百炼,字字珠玑,绝无半句废话妨碍读者思维。为了达到这个目的,一些重要段落常常修改数周方才定稿,一些难讲的概念常常花费数月进行构思。我认为花这么多时间是值得的,因为我一个人多花点时间,就可以使成千上万的读者节省很多时间。

为什么写一本书我要花费如此多的心血?这可能和我是追求完美主义的偏执性格有关,看到不完善的地方就不安心,就有一种非改不可的冲动。时至今日每读一遍本书,我都会修改很多词句,觉得还不够十全十美。今天偶然读到一句话:“追求完美是浪费生命,追求卓越才是追求成功。”掩卷回思,感悟颇深,感叹道:此书虽非完美无瑕,应该也可以称得上卓越了。于是决定先出版这本书,奉献给读者,这样总比放在我的电脑里强百倍,你说是不是?

“文王拘而演周易,仲尼厄而作春秋”,批阅五载,增删十次,借物明志。

本书的主要内容

本书分为三个部分,共23章。第Ⅰ部分为C#语法基础,包括第1章至第12章,深入浅出地介绍了C#的变量、运算符和表达式、流程控制、数组、函数、面向对象的编程,以及.NET框架的基本概念等C#编程的初步知识。第Ⅱ部分为Windows编程,包括第13章至15章,详细描述了Windows窗体编程的方方面面。第Ⅲ部分为.NET进阶,包括第16章至第23章,阐述了C#的诸多特性,如:委托与事件、绘图、文件和流、字符串和正则表达式、程序集和反射、多线程、集合,以及泛型。

本书光盘的内容

Project\\第Ⅰ部分 C#语言

该文件夹中包含了3个Visual Studio 2005的解决方案。它们对应着本书第Ⅰ部分的相关案例。

Project\\第Ⅱ部分 Windows编程

该文件夹中包含了本书第Ⅱ部分从第13章到第15章的案例。这些案例均为Visual Studio 2005的解决方案。

Project\\第Ⅲ部分 .NET进阶

该文件夹中包含了本书第Ⅲ部分从第16章到23章的案例。这些案例均为Visual Studio 2005的解决方案。

Project\\资源

该文件夹中包含了一些资源文件,如图片、图表等文件。

(注意:如果您用Visual Studio 2005之前版本的Visual Studio,打开上面这些解决方案的时候会出问题。)

联系方式

虽然我力求完美,但智识短浅,谬误之处难以避免,欢迎读者批评指正。

最后感谢李永伦先生对本书的审阅,以及为本书早日出版而付出辛勤劳动的所有人士表示衷心的感谢。

梁斌玉

2008年12月

目 录

第Ⅰ部分 C#语法基础

第1章 初识编程 2

1.1 C#简介 2

1.2 Visual Studio开发环境 3

1.3 认识程序 4

1.3.1 创建项目 4

1.3.2 编写代码 5

1.3.3 运行程序 7

1.4 编译 7

1.5 二进制 8

1.5.1 二进制转换为十进制 9

1.5.2 十进制转换为二进制 10

1.6 数据和内存 13

第2章 变量 15

2.1 整型变量 16

2.1.1 声明整型变量 16

2.1.2 int型变量的取值范围 20

2.1.3 short型 21

2.1.4 long型 21

2.1.5 无符号型 21

2.1.6 整数类型小结 21

2.1.7 溢出 22

2.2 实数型变量 23

2.3 字符 24

2.3.1 字符和字符串 25

2.3.2 字符型变量和字符串变量 26

2.3.3 字符串的输出 27

2.3.4 字符串的读取 27

2.3.5 ASCII编码和Unicode编码 28

2.3.6 转义字符 32

2.3.7 @控制符 33

2.3.8 +运算符 33

2.4 变量的格式化输出 34

2.5 变量的命名规则 37

2.6 常量 38

2.7 关键字(Keyword) 39

2.8 深化练习:交换两个变量的值 40

第3章 运算符和表达式 43

3.1 算术运算符 44

3.2 自增、自减运算符 46

3.3 赋值运算符 48

3.4 优先级 49

3.5 类型转换 50

3.5.1 隐式转换 50

3.5.2 显式转换 52

3.5.3 字符串和数值间的转换 53

第4章 流程控制 55

4.1 算法的概念 56

4.2 顺序结构 57

4.3 逻辑表达式 59

4.3.1 关系运算符 59

4.3.2 逻辑运算符 61

4.3.3 布尔变量 63

4.4 选择结构 64

4.4.1 if语句 64

4.4.2 switch语句 70

4.4.3 条件表达式 73

4.4.4 深化练习:三个变量排序 74

4.5 循环结构 75

4.5.1 while语句 75

4.5.2 do-while语句 80

4.5.3 for语句 82

4.6 break语句和continue语句 84

4.7 循环语句深化练习:分形图 85

第5章 枚举、结构体和数组 88

5.1 枚举 88

5.2 结构体 92

5.3 数组 94

5.3.1 一维数组 94

5.3.2 foreach循环语句 97

5.3.3 二维数组 97

5.3.4 可变数组 99

第6章 函数 101

6.1 为什么需要函数 101

6.2 定义函数 102

6.3 返回值 105

6.4 参数 107

6.4.1 值传递 107

6.4.2 地址传递 108

6.4.3 引用型参数(ref) 109

6.4.4 输出型参数(out) 111

6.4.5 参数匹配 112

6.5 递归调用 113

6.6 变量的作用域 116

6.6.1 局部变量 116

6.6.2 程序块中的局部变量 117

第7章 面向对象编程:类和对象(一) 119

7.1 背景 119

7.2 面向对象的基本概念 120

7.3 定义类 122

7.4 声明对象 125

7.5 属性 127

7.6 构造函数 129

7.7 析构函数和垃圾回收 132

7.8 实例演练:Time类 133

第8章 面向对象编程:类和对象(二) 137

8.1 以对象为成员 137

8.2 静态成员 138

8.2.1 静态变量 138

8.2.2 静态函数 141

8.3 常量成员 142

8.3.1 const常量 142

8.3.2 readonly常量 144

8.4 重载(Overload) 146

8.4.1 函数重载 146

8.4.2 构造函数的重载 148

8.4.3 运算符重载 149

8.5 this关键字 153

8.6 索引 154

8.7 值类型和引用类型 157

8.7.1 值类型变量 158

8.7.2 引用型变量 159

8.7.3 引用型变量和垃圾回收器 160

8.8 引用符和对象的区别 160

8.9 声明对象数组 162

8.10 类视图 162

第9章 面向对象编程:继承 163

9.1 继承概述 163

9.2 由基类创建派生类 164

9.3 protected成员 167

9.4 虚函数的重写 170

9.5 普通函数的隐藏 172

9.6 base关键字 173

9.7 抽象类和抽象函数 174

9.8 密封类和密封函数 175

9.9 派生类的构造函数 176

9.10 万类之源:Object 180

第10章 面向对象编程:多态性 182

10.1 派生类的对象和基类的关系 182

10.2 多态性的概念 182

10.3 多态性的应用 183

10.4 is运算符 186

10.5 向下类型转换 187

10.6 接口 188

10.7 类关系图 192

第11章 .NET框架基本概念 193

11.1 如何理解.NET框架 193

11.2 C#和.NET的关系 194

11.3 中间语言 194

11.4 强数据类型 195

11.5 类型的判定 197

11.5.1 sizeof运算符 197

11.5.2 typeof运算符 197

11.5.3 GetType()函数 197

11.5.4 is运算符 198

11.6 命名空间 199

11.7 装箱和拆箱 202

11.8 对象的相等 204

第12章 异常 208

12.1 异常概述 208

12.2 捕获异常——try-catch结构 209

12.3 finally块——try-catch-finally结构 210

12.4 抛出异常——throw语句 211

12.5 .NET中的异常类 212

12.6 异常类的属性 214

12.7 自定义异常 215

第Ⅱ部分 Windows编程

第13章 Windows窗体编程(一) 218

13.1 窗体(Form) 218

13.2 按钮(Button) 223

13.3 标签(Label) 226

13.4 超链接标签(LinkLabel) 227

13.5 文本框(TextBox) 228

13.6 单选按钮(RadioButton) 230

13.7 复选框(CheckBox) 231

13.8 数字输入框(NumericUpDown) 233

13.9 群组框(GroupBox) 235

13.10 面板(Panel) 237

第14章 Windows窗体编程(二) 245

14.1 鼠标事件处理 245

14.2 键盘事件处理 249

14.3 图形框(PictureBox) 252

14.4 列表框(ListBox) 254

14.5 复选列表框(CheckListBox) 256

14.6 下拉式列表框(ComboBox) 259

14.7 列表视图(ListView) 261

14.8 树状视图(TreeView) 266

14.9 控件布局 270

第15章 Windows窗体编程(三) 277

15.1 菜单 277

15.1.1 主菜单(MainMenu) 277

15.1.2 关联菜单(ContextMenu) 284

15.2 工具栏(ToolStrip) 285

15.3 对话框 289

15.3.1 另存为对话框(SaveFileDialog) 289

15.3.2 打开文件对话框(OpenFileDialog) 291

15.3.3 字体对话框(FontDialog) 293

15.3.4 颜色对话框(ColorDialog) 294

15.3.5 自定义对话框 295

15.4 多文档界面 296

15.5 Windows窗体类的层次结构 302

第Ⅲ部分 .NET进阶

第16章 委托与事件 306

16.1 委托 306

16.2 多播委托 311

16.3 匿名函数 312

16.4 事件处理机制 313

16.4.1 事件处理机制的原理 313

16.4.2 自定义事件 316

第17章 绘图 321

17.1 概述 321

17.2 像素和坐标系 322

17.3 颜色 322

17.4 Graphics类 324

17.5 画笔(Pen) 325

17.6 画刷(Brush) 326

17.7 路径(Path) 329

17.8 OnPaint()方法 331

17.9 坐标变换 332

17.9.1 平移变换 332

17.9.2 旋转变换 334

17.9.3 伸缩变换 335

17.9.4 在滚动窗口中绘图 336

17.10 字体(Font) 341

17.11 显示图像 344

17.11.1 Image类 344

17.11.2 Bitmap类 345

17.11.3 Metafile类 346

第18章 文件和流 348

18.1 文件系统 348

18.1.1 File类和FileInfo类 348

18.1.2 关于文件的异常 350

18.1.3 Directory类和DirectoryInfo类 351

18.1.4 Path类 353

18.1.5 Environment类 354

18.2 基于流的文件操作 356

18.2.1 FileStream类 357

18.2.2 关于流的异常 359

18.2.3 用流读写文本文件 363

18.2.4 用流读写二进制文件 365

第19章 字符串和正则表达式 368

19.1 String类 368

19.1.1 复制字符串 369

19.1.2 比较字符串 371

19.1.3 验证字符串首尾 373

19.1.4 定位字符或子串 374

19.1.5 截取子串 377

19.1.6 拆分字符串 378

19.1.7 更改大小写 378

19.1.8 修改字符串 379

19.1.9 插入格式化变量 379

19.2 StringBuilder类 380

19.3 Char类 384

19.4 正则表达式 385

19.4.1 通配符 385

19.4.2 可选字符集 386

19.4.3 或 387

19.4.4 非 388

19.4.5 数量限定符 388

19.4.6 定位符 393

19.4.7 Regex类的函数 395

19.4.8 深化练习:验证用户输入 397

第20章 特性、程序集和反射 398

20.1 特性 398

20.1.1 使用特性 398

20.1.2 自定义特性 400

20.2 程序集 404

20.2.1 认识程序集 405

20.2.2 程序集的结构 412

20.2.3 私有程序集和共享程序集 413

20.2.4 程序集的特性 413

20.3 反射 416

20.3.1 获取类型信息(Type类) 416

20.3.2 获取程序集信息(Assembly类) 418

20.3.3 动态加载类型 419

第21章 多线程 422

21.1 线程的概念 422

21.2 Thread类 423

21.3 线程的优先级 427

21.4 线程的插入 431

21.5 线程的状态 433

21.6 线程的同步 434

21.6.1 线程同步的概念 434

21.6.2 互锁(Interlocked类) 436

21.6.3 管程(Monitor类) 438

21.6.4 互斥体(Mutex类) 443

21.6.5 死锁 446

21.7 线程池 449

第22章 集合 453

22.1 集合概述 453

22.2 Array类 454

22.3 ArrayList类 455

22.4 Stack类 459

22.5 Queue类 461

22.6 SortedList类 463

22.7 Hashtable类 465

第23章 泛型 473

23.1 泛型的概念 473

23.2 泛型集合类 476

23.2.1 List<T>类 477

23.2.2 Stack<T>类 477

23.2.3 Queue<T>类 478

23.3 类型约束 478

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/24 9:40:50