词条 | 叩响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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。