首页>参考读物>计算机科学与技术>软件与程序设计

C# 编程技术与技巧
作者 : (美)Charles Wright
译者 : 胡俊哲 英宇 等
出版日期 : 2002-09-01
ISBN : 7-111-10826-4
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 524
开本 : 16开
原书名 : C# Programming Tips & Techniques
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书全面系统地讲述了C# 编程语言,例如C#的数据类型、结构和类、流操作、异常处理、封装、继承和多态等。介绍了Visual Studio .NET集成开发环境以及如何使用C#语言来编写Windows应用程序,书中还提供了大量的代码实例、编程技巧以及中文屏幕图,更利于快速理解和掌握C#语言。
本书通俗易懂,叙述深入浅出,概念清晰、准确,实例丰富。非常适合有一定C/C++或者Visual Basic编程基础的初学者自学和参考,也可以作为专门的C#程序员培训教材。

图书前言

几年来,Microsoft一直致力于一种称做.NET的新开发平台。设计这种新的开发平台是使开发人员能够利用网络环境编写基于组件的程序。Microsoft这种新的编程语言—C#,是由C、C++及Visual Basic语言派生出来的,运行于.NET环境中。
尽管在Internet上可以看到许多声明,但C#并不是一种变革性的语言。Microsoft 将最新的技术(如Java)和以往的技术(如Smalltalk)糅合在一起形成了一种混合语言,它的语法非常接近C++。
这是否意味着使用C#语言的时代到来了呢?那还要拭目以待。当然,C#或者说.NET环境在10年前甚至5年前是不可能有的。Microsoft认为,过些年后,技术上的进步(比如更快速的计算机和更便宜的存储器)将会使那些用于开发中间语言产品的语言比过去更具生命力。
C#的最大受益人将是开发者。使用这种语言将减少编程错误,加速开发周期。如果你熟悉C++,那么学习C#就会很容易。使用C#会缩短从编程思想到出产品的过程。
本书内容
任何单独的一本关于使用C语言在Windows环境下编程的书似乎都不完整。在一本书中要涵盖所有内容是不可能的。本书并非试图包含C#编程领域中的所有内容,而是要向你展示一些使用C#的技巧。同时,本书包含了C#的语法和原理,为使用C#编程打下基础。
本书共有18章。你将首先了解.NET的结构和C#语言,然后再学习面向对象的编程以及怎样使用C#先进的编程概念。
第1章:C#和.NET简介
开始的这一章概述了.NET框架和C#语言,还会提到许多在开发C#程序时会用到的命令行工具。
第2章:在Visual Studio.NET中开发C#应用程序
在这一章里,将会看到一个全新的Visual Studio .NET集成环境。将学习使用Visual Studio创建C#程序,并会发现开发环境中的向导和工具窗口非常有用。
第3章:C#的预备知识
学习一种新语言的惟一途径是使用这种语言进行编程。该章阐述了C#的各部分,并将它们与不同语言进行了比较,教你用C#窗体和命令行程序创建一个显示日期和时间的Windows窗体项目。
第4章:C#基础
该章介绍C#的语法、操作符和符号。你会看到“安全”和“不安全”代码,学习怎样使用语言来测试一个变量取值范围。你还将学习控制和循环语句,了解其概貌。
第5章:C#中的数据类型
C#是一种安全类语言,理解C#怎样处理数据是很重要的。该章讨论对象、引用、变量的数值类型。你会用到只读变量、常量,并了解C#处理字符串的方法。
第6章:C#中的结构
结构是一种最老的对象,它在面向对象的编程概念出现之前就已为人所用了,在C#中它仍占有一席之地。在该章中,你会学到怎样声明、使用结构,以及在结构中使用方法和属性。
第7章:理解C#类
和结构一样,类是C#的基本编程单元。你将学习怎样定义类,怎样使用实例和静态成员。你还会看到构造函数和析构函数,以及怎样在类中包含成员方法。
第8章:C#语言和面向对象编程
一般编程者选择一种基于对象的语言主要考虑它的三个特性:封装性、继承性和多态性。C#用各种各样的对象类型实现这些特性。该章还将讲到抽象类和对象浏览器。
第9章:异常处理
在程序中发生不期望的事件和错误时就会产生异常。如果在代码中不进行处理,程序就会异常中断。C#在异常处理上非常迅捷,它通常是抛出异常,而不是像其他语言那样用一个方法简单地返回错误代码。
第10章:C#高级特性
C#是一种现代语言,它实现了一些先进的、现代的编程技巧。该章中讲到了名称空间、配件、引用和接口,还有反射—一种使程序具有探测对象、发现对象相关信息能力的概念。
第11章:使用C#数组
C#将Visual Basic的数组技术带入了C系列编程语言。该章讲述C#如何管理数组,如何声明、创建一维和多维数组,以及元素参差不齐的不规则数组(其元素是数组)。
第12章:文件操作
编写任何实用的程序最终是要读写文件的。C#使用“流”来实现文件的操作。你会看到C# 的流如何在文件、存储器、网络中处理数据,你还会遇到一些内置类并学会用它们操纵文件。
第13章:编写Windows应用程序
使用Visual C#编写Windows程序涉及到窗体。窗体大体上等同于对话框。Visual C#赋予了窗体可扩展能力。因此,在Visual C++中编程利用的View类,在C#中是找不到的。
第14章:调试C#程序
无论如何,用C#写的大多数实用程序都会有问题。任何程序开发中,有部分阶段就是反复调试。该章教你程序调试工具的用法、内置类的检查方法。这些类是专门用来帮你查找、修改程序中的错误的。
第15章:创建用户界面
如何与用户交互信息,决定了你的程序是否易用—是让用户轻松使用,还是令用户抱怨操作繁琐。该章阐述了怎样在程序中添加菜单(包括提示菜单)和工具条。还讲到如何使用图像列表(控件)来放置工具条上的图标,如何让控件响应窗体大小的改变,如何构造一个能完成记事簿中大多数任务的编辑器项目。你将开始创建一个编辑器工程,该编辑器能够完成Nitepad的大部分功能。
第16章:使用Windows控件
窗体是Windows控件方便的容器。控件是给用户显示信息并接受用户信息和行为的对象。该章讲到两个浏览控件:ListView 和 TreeView,并讲述如何在窗体上使用它们。
第17章:使用公用对话框
Windows公用对话框库中给出了一个通用的“外观和感觉”,这缩短了用户学习使用新程序的时间。该章介绍在C#中可用的通用对话框对象,并介绍如何在第15章中讲到的编辑器项目中添加打印功能。
第18章:使用代理和事件
控件和窗体之间是用“事件”进行相互联系的。这和用Visual C++对窗口消息编程相类似。要处理一个事件,需要对事件赋予代理(delegate)。事件和代理不仅仅用于简单的控件消息,你会看到更多的用法以及怎样运用事件和代理。
如何阅读本书
本书是为帮助一般用Visual C++或Visual Basic的编程者转到用C#编程而写的。为了方便起见,书中有的地方会指出C#和其他语言的相同点和不同点。
本书决不是有关C#的详细信息罗列。没有任何一本有关C语言编程的书是全面完整的,甚至Microsoft Developers Network 上的Visual Studio帮助文件中都有许多空白。编程是个经常变化的领域,大多数语言都是动态变化的。
C#不是一门能够轻松地分门别类进行讲述的语言。要描述一个概念,往往要涉及其他概念。尽管本书各章节的内容都在前述章节的基础上循序渐进,但偶尔有些主题也要借鉴后面的章节来理解,这时会有上下文提示这些主题内容的出处。
尽管本书中有一些代码是节选的,但大部分代码都是完整的程序。有时程序可能很小,仅仅只是说明一个要点,但仍然可以编译运行,也就是说,该程序是可以用来验证所述要点的起点。我是赞成用完整的程序做范例的。在25年的编程生涯中,我经常遇到这样的情况:一些范例中的代码因为缺少文中提到的个别组件而无法编译。一个完整的程序如果没有测试成功,总能返回到源代码测试其他问题。第18章中的员工排序实例的思想来源于去掉注释后排序部分程序的范例。在这个范例里,将示范如何创建、使用代理方法来排序记录。这个程序是完整的,可以用C#目前的版本进行编译,功能就是排序记录。
本书中的代码着力于引导你如何在C#中实现功能和构造。你应该尽力去理解使用方法而不要误认为那些对象必须以某种特定方式使用。我坚持认为编程与其说是一门科学,不如说是一门艺术,做不同的尝试,会有“柳暗花明”般茅塞顿开的感觉。想像力比任何简单的“如何做”范例都重要。
因此,我从来没有建议什么“合适的代码”。把一个程序从一种理念变成一种现实总是包含周密的设想,过分强调所谓“合适的代码”往往带来的是缺乏想像力的代码。你知道怎样编程,并不意味着你就能写出设计完善、效率高的程序来。写出这样的程序需要经验,具有这种经验就需要尝试新技术且难免犯错误。
使用本书的相关网址
在本书的各个章节中,我们给出了多个C#程序的范例。在许多情况下,你都可以简单地将我们提供的注释和部分代码剪贴到你的程序中去。本书中的代码从McGraw-Hill/Osborne的网址www.osborne.com上可以找到。

本书原书书名:C# Tips & Techniques
本书原书书号:ISBN 0-07-219379-4
本书原书网址:www.osborne.com

作者简介

(美)Charles Wright:暂无简介

译者简介

胡俊哲 英宇 等:暂无简介

译者序

无论你是一位经验丰富的编程高手,还是刚入门的初学者,阅读完本书,相信C#都会在每位读者的脑海里留下深刻的印象。
本书从最基本的概念开始,系统地介绍了C#语言和.NET编程环境,以及如何使用C#语言来快速开发Windows应用程序。书中各章节的内容按照由浅入深的顺序进行组织,而且每一章节都涉及了C#语言的某个方面,读者能够从基础的编程知识开始学习,直到最终领会C#语言的高级特性。
除了讲述C#语言本身的内容之外,书中还详细介绍了如何在Visual Studio .NET集成开发环境中使用C#语言编写Windows应用程序。在每一章节中还给出了许多非常实用的编程技巧和在编程过程中需要注意的地方。
另外,书中还提供了大量C#程序范例,并对程序代码有详细的解释,以便让读者很轻松地了解到C#语言的语法、技术特性等内容,并且能够把这些知识轻松地应用到自己的程序中。
从本书中,读者可以学到以下内容:
?C#语言和.NET开发环境。
?C#语言的语法。
?C#语言的数据类型。
?面向对象编程思想如何在C#语言中体现。
?C#语言如何处理程序异常。
?C#语言的高级特性:数组、I/O操作、反射、配件等。
?如何调试C#程序。
?如何在C#程序中创建窗口界面。
?在C#程序中响应用户事件。
学完本书的所有内容之后,读者就可以从对C#一无所知而成为一个能够灵活使用C#语言完成编程任务的程序员。在此基础上,甚至可以参与大型应用项目的编程工作了。如果你正需要了解C#语言—微软公司在21世纪力推的主流编程语言,那么本书将可以让你充分领略到C#的神奇魅力。
本书的翻译主要由胡俊哲、英宇、贾楠完成。鉴于译者水平,如有错误和疏漏之处,请读者不吝指教。我们接收读者意见的邮箱为:yingyu@263.net。

2002年7月

图书目录

第一部分  .NET环境和C#
第1章  C#和.NET简介 1
1.1  何时使用C#和C++ 5
1.2  .NET和其他开发环境的区别 8
1.3  使用公共语言运行时 10
1.4  查看中间语言代码 13
1.5  利用实时调试 14
1.6  利用.NET与COM的互操作特性 16
1.7  通过.NET版本控制来处理软件更新 17
1.8  使用.NET反射机制获取类的相关信息 19
第2章  在Visual Studio .NET中开发C#
应用程序 22
2.1  使用Visual Studio .NET的“选项”
对话框 26
2.2  定制工具栏和菜单 27
2.3  在工具菜单中增加菜单项 29
2.4  测试驱动Visual Studio .NET 31
2.5  使用属性窗口 34
2.6  使用智能提示 36
2.7  获取帮助 37
第二部分  C#  语  言
第3章  C#的预备知识 41
3.1  使用C#库类 45
3.2  创建命令行程序 47
3.3  在命令行程序中添加引用 48
3.4  与C++的比较 50
3.5  创建Windows程序 50
3.6  与Visual Basic的比较 52
3.7  理解空白和标记 54
3.8  注释代码 55
3.9  用XML注释文档化代码 57
3.10  使用C#调试器 58
3.11  使用输出窗口和任务列表窗口 60
3.12  解析任务列表窗口 60
3.13  编写和使用自己的名称空间 61
3.14  使用Console类 62
3.15  格式化输出和字符串 63
3.16  使用预处理命令 66
第4章  C#基础 70
4.1  理解值类型变量 75
4.2  理解引用类型变量 76
4.3  编写表达式 79
4.4  编写语句 80
4.5  使用托管代码 81
4.6  使用逻辑操作符 84
4.7  使用关系、相等和条件操作符 87
4.8  使用赋值操作符 89
4.9  理解C#的类型操作符 91
4.10  使用unsafe代码 93
4.11  使用sizeof操作符 95
4.12  装箱和拆箱 96
4.13  使用checked和unchecked语句 99
4.14  编写循环 102
4.15  使用程序控制语句 106
4.16  理解C#中的作用域 111
第5章  C#中的数据类型 113
5.1  在C#中定义结构 118
5.2  声明和使用简单数据类型 120
5.3  创建枚举列表 121
5.4  使用引用类型 124
5.5  C#类的基础概念 125
5.6  在C#中声明数组 126
5.7  理解接口 127
5.8  使用代理来创建回调函数 128
5.9  使用object数据类型 130
5.10  向函数传递参数 131
5.11  使用字段和属性 134
5.12  使用内部字符串表来降低内存消耗 138
5.13  C#中的字符串编码 138
5.14  C#中的数据转换 142
第6章  C#中的结构 144
6.1  定义结构 147
6.2  以值类型对象来使用结构 151
6.3  以引用的方式使用结构 152
6.4  在结构中增加函数 154
6.5  在结构中添加属性 158
第7章  理解C#类 163
7.1  使用内建类 167
7.2  使用this关键字来引用当前对象 174
7.3  使用访问关键字保护类成员 176
7.4  使用类的成员方法和属性 177
7.5  使用static修饰符修饰类成员 183
7.6  声明构造函数和析构函数 185
7.7  创建常量和只读字段 190
7.8  在类中嵌套其他的类 193
7.9  重载和名字隐藏 197
第8章  C#语言和面向对象编程 204
8.1  封装数据 206
8.2  从基类中继承 208
8.3  设计基类 212
8.4  隐藏基类的成员 213
8.5  按次序调用构造函数和析构函数 214
8.6  使用sealed修饰符来禁止继承 216
8.7  多态:使用虚方法来改变类的行为 217
8.8  使用虚属性 228
8.9  定义抽象类 230
8.10  声明抽象函数 231
8.11  使用对象浏览器 234
8.12  设置浏览范围 235
8.13  使用对象面板 236
8.14  使用成员面板 236
8.15  使用对象浏览器进行导航 237
8.16  搜索符号 237
第9章  异常处理 239
9.1  在CLR中使用异常处理 242
9.2  使用try和catch代码块 244
9.3  捕获异常 247
9.4  使用多重catch代码块 249
9.5  使用异常类 251
9.6  抛出异常 254
9.7  异常块的作用域 258
9.8  使用带有checked变量的异常 259
9.9  在异常块中结束程序 261
9.10  理解finally代码块 263
第10章  C#高级特性 266
10.1  嵌套的名称空间 270
10.2  使用using指令来指定名称空间 271
10.3  深入了解using语句 274
10.4  添加引用 275
10.5  创建模块文件 279
10.6  创建共享配件 280
10.7  使用C#接口定义抽象行为 283
10.8  使用反射机制获取运行时信息 286
10.9  动态调用对象 290
10.10  创建执行线程 292
第11章  使用C#数组 298
11.1  初始化数组 303
11.2  使用多维数组 305
11.3  使用不规则数组 307
11.4  使用System.Array类 310
11.5  数组的搜索和排序 311
11.6  使用Copy()方法来复制数组值 314
11.7  使用对象数组 316
11.8  使用索引器 318
11.9  索引器的工作机制 320
11.10  声明索引器 321
11.11  使用C#的索引器向导 322
第12章  文件操作 323
12.1  使用FileStream类 329
12.2  使用MemoryStream类创建临时
存储空间 331
12.3  使用NetworkStream类创建网络连接 334
12.4  使用BufferedStream类缓冲流的
输入输出 338
12.5  执行异步I/O 340
12.6  用Null字段作为位存储桶删除
无用的数据 342
12.7  使用TextReader和TextWriter抽象类 344
12.8  使用StreamReader和StreamWriter类 344
12.9  使用FileOpen通用对话框打开文件 348
12.10  使用File和FileInfo类 351
12.11  获取和设置目录 355
第三部分  用C#进行Windows编程
第13章  编写Windows应用程序 361
13.1  创建基于窗体的应用 364
13.2  隐藏和显示窗体 368
13.3  在窗体上添加控件 370
13.4  向应用程序中添加窗体 373
13.5  设置Tab键顺序 378
13.6  设置窗体的属性 379
13.7  使用模态和非模态窗体 379
第14章  调试C#程序 388
14.1  使用DbgCLR.exe调试C#和.NET
应用程序 392
14.2  使用实时调试工具来调试.Net
应用程序 394
14.3  在Visual Studio调试器中运行程序 395
14.4  设置断点来暂停执行程序 396
14.5  在方法中设置条件 398
14.6  恢复堆栈跟踪信息 400
14.7  使用调试类 403
14.8  使用跟踪侦听器 407
14.9  将调试信息写入事件日志中 411
第15章  创建用户界面 417
15.1  在窗体上添加菜单 418
15.2  使用菜单设计器 422
15.3  为菜单增加修饰 430
15.4  增加快捷键 430
15.5  增加图形 431
15.6  增加工具栏 432
15.7  增加上下文菜单 434
15.8  在树视图控件中显示内容 435
15.9  在列表视图控件中显示内容 440
15.10  一个资源管理器风格的应用程序 447
第16章  使用Windows控件 449
16.1  设置控件的属性 452
16.2  使用不可见控件 455
16.3  响应控件消息 456
16.4  用一个事件来响应多个控件 458
16.5  使用空闲进程来使能和禁用控件 460
16.6  使用GroupBox控件 461
16.7  单选按钮控件 463
16.8  锚定窗体中的控件 464
16.9  在窗体上停靠控件 465
第17章  使用公用对话框 467
17.1  选择颜色 469
17.2  用FontDialog对话框来选择文字的
样式 472
17.3  打开/保存文件 474
17.4  关于打印 479
17.5  选择打印机 482
17.6  设置页面选项 484
17.7  预览打印输出 486
第18章  使用代理和事件 488
18.1  在C#程序中使用事件 491
18.2  编写事件处理函数 493
18.3  使用代理给对象排序 495
18.4  使用静态代理 501
18.5  查看代理的调用列表 503
18.6  组合与删除代理中的方法 504
18.7  响应定时器事件 506
18.8  响应System.Threading.Timer事件 508

教学资源推荐
作者: [美]贝赫鲁兹·A. 佛罗赞(Behrouz A.Forouzan) 理查德·F. 吉尔伯格(Richard F. Gilberg) 著
作者: (美)Maurice Herlihy 布朗大学 Nir Shavit 麻省理工学院 著
作者: 顾治华 陈天煌 贺国平
作者: 凌云 谢满德 陈志贤 吴海燕 编著
参考读物推荐