开发工具:
文件大小: 46mb
下载次数: 0
上传时间: 2012-10-15
详细说明: 《C# 4.0图解教程》是一本广受称赞的C#教程。它以图文并茂的形式,用朴实简洁的文字,并辅之以大量表格和代码示例,全面地阐述了最新版C#语言的各种特性,使读者能够快速理解、学习和使用C#。同时,《C# 4.0图解教程》还讲解了C#与VB、C++等主流语言的不同点和相似之处。 《C# 4.0图解教程》是经典的C#入门书,不仅适合没有任何编程语言基础的初级读者阅读,而且还是有VB、C++等语言基础的C#初学者的最佳选择。 目 录 第1章 C#和NET框架 1 1.1 在NET之前 1 1.1.1 20世纪90年代后期的Windows编程 1 1.1.2 下一代平台服务的目标 2 1.2 进入Microsoft NET 2 1.2.1 NET框架的组成 2 1.2.2 大大改进的编程环境 3 1.3 编译成CIL 5 1.4 编译成本机代码并执行 5 1.5 CLR 6 1.6 CLI 7 1.7 缩写回顾 8 第2章 C#编程概述 9 2.1 一个简单的C#程序 9 2.2 标识符和关键字 11 2.2.1 命名约定 11 2.2.2 关键字 12 2.3 Main:程序的起始点 12 2.4 空白 13 2.5 语句 13 2.5.1 简单语句 13 2.5.2 块 14 2.6 从程序中输出文本 14 2.6.1 Write 14 2.6.2 WriteLine 15 2.6.3 格式字符串 15 2.6.4 多重标记和值 16 2.7 注释 16 2.7.1 关于注释的补充 17 2.7.2 文档注释 17 2.7.3 注释类型总结 18 第3章 类型、存储和变量 19 3.1 C#程序是一组类型声明 19 3.2 类型是一种模板 20 3.3 实例化类型 20 3.4 数据成员和函数成员 21 3.5 预定义类型 21 3.6 用户定义类型 23 3.7 栈和堆 24 3.7.1 栈 24 3.7.2 堆 25 3.8 值类型和引用类型 25 3.8.1 存储引用类型对象的成员 26 3.8.2 C#类型的分类 27 3.9 变量 27 3.9.1 变量声明 27 3.9.2 多重变量声明 29 3.9.3 使用变量的值 29 3.10 静态类型和dynamic关键字 29 3.11 可空类型 30 3.11.1 创建可空类型 30 3.11.2 为可空类型赋值 31 第4章 类:基础 32 4.1 类的概述 32 4.2 程序和类:一个快速的示例 33 4.3 声明类 33 4.4 类成员 34 4.4.1 字段 34 4.4.2 显式和隐式字段初始化 35 4.4.3 声明多个字段 36 4.4.4 方法 36 4.5 创建变量和类的实例 37 4.6 为数据分配内存 37 4.7 实例成员 38 4.8 访问修饰符 39 4.9 从类的内部访问成员 41 4.10 从类的外部访问成员 42 4.11 综合应用 43 第5章 方法 45 5.1 方法的结构 45 5.2 本地变量 47 5.2.1 类型推断和var关键字 47 5.2.2 嵌套块中的本地变量 48 5.3 本地常量 49 5.4 方法调用 51 5.5 返回值 52 5.6 参数 54 5.6.1 形参 54 5.6.2 实参 55 5.6.3 带位置输入参数的方法示例 55 5.7 值参数 56 5.8 引用参数 58 5.9 输出参数 60 5.10 参数数组 62 5.10.1 方法调用 63 5.10.2 数组作实参 65 5.11 参数类型总结 66 5.12 方法重载 66 5.13 命名参数 67 5.14 可选参数 68 5.15 栈帧 71 5.16 递归 72 第6章 类进阶 74 6.1 类成员 74 6.2 实例类成员 76 6.3 静态字段 76 6.4 从类的外部访问静态成员 77 6.4.1 静态字段示例 77 6.4.2 静态成员的生存期 78 6.5 静态函数成员 79 6.6 其他静态类成员类型 80 6.7 成员常量 80 6.8 属性 82 6.8.1 属性声明和访问器 83 6.8.2 属性示例 83 6.8.3 使用属性 84 6.8.4 属性和关联字段 85 6.8.5 执行其他计算 86 6.8.6 只读和只写属性 87 6.8.7 计算只读属性示例 87 6.8.8 属性和数据库示例 88 6.8.9 属性vs公共字段 88 6.8.10 自动实现属性 89 6.8.11 静态属性 89 6.9 实例构造函数 90 6.9.1 带参数的构造函数 91 6.9.2 默认构造函数 92 6.10 静态构造函数 93 6.10.1 静态构造函数示例 93 6.10.2 构造函数的可访问性 94 6.11 对象初始化列表 94 6.12 析构函数 95 6.12.1 调用析构函数 96 6.12.2 标准清理模式 98 6.13 比较构造函数和析构函数 99 6.14 readonly修饰符 99 6.15 this关键字 100 6.16 索引 101 6.16.1 什么是索引 102 6.16.2 索引和属性 102 6.16.3 声明索引 103 6.16.4 索引的set访问器 104 6.16.5 索引的get访问器 104 6.16.6 关于索引的补充 105 6.16.7 为Employee示例声明索引 105 6.16.8 另一个索引示例 106 6.16.9 索引重载 107 6.17 访问器的访问修饰符 107 6.18 分部类和分部类型 109 第7章 类和继承 12 7.1 类继承 112 7.2 访问继承的成员 113 7.3 隐藏基类的成员 115 7.4 基类访问 116 7.5 使用基类的引用 117 7.5.1 虚方法和覆写方法 119 7.5.2 覆写标记为override的方法 120 7.5.3 覆盖其他成员类型 123 7.6 构造函数的执行 124 7.6.1 构造函数初始化语句 125 7.6.2 类访问修饰符 127 7.7 程序集间的继承 128 7.8 成员访问修饰符 129 7.8.1 访问成员的区域 130 7.8.2 公有成员的可访问性 131 7.8.3 私有成员的可访问性 131 7.8.4 受保护成员的可访问性 132 7.8.5 内部成员的可访问性 132 7.8.6 受保护内部成员的可访问性 132 7.8.7 成员访问修饰符的总结 133 7.9 抽象成员 133 7.10 抽象类 134 7.10.1 抽象类和抽象方法的示例 135 7.10.2 抽象类的另一个例子 136 7.11 密封类 137 7.12 静态类 137 7.13 扩展方法 138 第8章 表达式和运算符 142 8.1 表达式 142 8.2 字面量 143 8.3 整数字面量 144 8.4 字符字面量 145 8.5 字符串字面量 146 8.6 求值顺序 147 8.6.1 优先级 148 8.6.2 结合性 148 8.7 简单算术运算符 149 8.8 求余运算符 149 8.9 关系比较运算符和相等比较运算符 150 8.10 递增运算符和递减运算符 152 8.11 条件逻辑运算符 153 8.12 逻辑运算符 154 8.13 移位运算符 155 8.14 赋值运算符 157 8.15 条件运算符 158 8.16 一元算术运算符 159 8.17 用户定义类型转换 160 8.18 运算符重载 162 8.18.1 运算符重载的限制 163 8.18.2 运算符重载的示例 164 8.19 typeof运算符 165 8.20 其他运算符 166 第9章 语句 167 9.1 什么是语句 167 9.2 表达式语句 168 9.3 控制流语句 169 9.4 if 语句 169 9.5 if…else语句 170 9.6 switch语句 171 9.6.1 分支示例 172 9.6.2 switch语句的补充 173 9.6.3 switch标签 174 9.7 while循环 174 9.8 do循环 175 9.9 for循环 176 9.9.1 for语句中变量的有效范围 177 9.9.2 初始化语句和迭代表达式中的多表达式 178 9.10 跳转语句 178 9.11 break语句 178 9.12 continue语句 179 9.13 标签语句 180 9.13.1 标签 180 9.13.2 标签语句的范围 180 9.14 goto语句 181 9.15 using语句 182 9.15.1 资源的包装使用 183 9.15.2 using语句的示例 183 9.15.3 多个资源和嵌套 184 9.15.4 using语句的另一种形式 185 9.16 其他语句 186 第10章 命名空间和程序集 187 10.1 引用其他程序集 187 10.2 命名空间 191 10.2.1 命名空间名称 194 10.2.2 命名空间的补充 194 10.2.3 命名空间跨文件伸展 195 10.2.4 嵌套命名空间 195 10.3 using指令 196 10.3.1 using命名空间指令 196 10.3.2 using别名指令 197 10.4 程序集的结构 198 10.5 程序集标识符 199 10.6 强命名程序集 200 10.7 程序集的私有方式部署 201 10.8 共享程序集和GAC 201 10.8.1 把程序集安装到GAC 201 10.8.2 GAC内的并肩执行 202 10.9 配置文件 203 10.10 延迟签名 203 第11章 异常 205 11.1 什么是异常 205 11.2 try语句 206 11.3 异常类 207 11.4 catch子句 207 11.4.1 使用特定catch子句的示例 208 11.4.2 catch子句段 209 11.5 finally块 210 11.6 为异常寻找处理代码 211 11.7 更进一步搜索 211 11.7.1 一般法则 212 11.7.2 搜索调用栈的示例 213 11.8 抛出异常 214 11.9 不带异常对象的抛出 215 第12章 结构 217 12.1 什么是结构 217 12.2 结构是值类型 218 12.3 对结构赋值 219 12.4 构造函数和析构函数 220 12.4.1 实例构造函数 220 12.4.2 静态构造函数 221 12.4.3 构造函数和析构函数的总结 221 12.5 字段初始化是不允许的 222 12.6 结构是密封的 222 12.7 装箱和取消装箱 222 12.8 结构作为返回值和参数 222 12.9 关于结构的附加信息 222 第13章 枚举 224 13.1 枚举 224 13.1.1 设置底层类型和显式值 225 13.1.2 隐式成员编号 226 13.2 位标志 227 13.2.1 Flags特性 229 13.2.2 使用位标志的示例 230 13.3 关于枚举的补充 231 第14章 数组 233 14.1 数组 233 14.1.1 定义 233 14.1.2 重要细节 234 14.2 数组的类型 234 14.3 数组是对象 235 14.4 一维数组和矩形数组 236 14.5 实例化一维数组或矩形数组 236 14.6 访问数组元素 237 14.7 初始化数组 238 14.7.1 显式初始化一维数组 238 14.7.2 显式初始化矩形数组 239 14.7.3 初始化矩形数组的语法点 239 14.7.4 快捷语法 240 14.7.5 隐式类型数组 240 14.7.6 综合内容 241 14.8 交错数组 241 14.8.1 声明交错数组 242 14.8.2 快捷实例化 242 14.8.3 实例化交错数组 242 14.8.4 交错数组中的子数组 243 14.9 比较矩形数组和交错数组 244 14.10 foreach语句 245 14.10.1 迭代变量是只读的 246 14.10.2 foreach语句和多维数组 247 14.11 数组协变 248 14.12 数组继承的有用成员 249 14.13 比较数组类型 252 第15章 委托 253 15.1 什么是委托 253 15.2 声明委托类型 255 15.3 创建委托对象 255 15.4 赋值委托 257 15.5 组合委托 257 15.6 为委托增加方法 258 15.7 从委托移除方法 259 15.8 调用委托 259 15.9 委托的示例 260 15.10 调用带返回值的委托 261 15.11 调用带引用参数的委托 262 15.12 匿名方法 262 15.12.1 使用匿名方法 263 15.12.2 匿名方法的语法 263 15.12.3 变量和参数的作用域 265 15.13 Lambda表达式 266 第16章 事件 269 16.1 事件和委托相似 269 16.2 源代码组件概览 270 16.3 声明事件 271 16.3.1 事件是成员 271 16.3.2 委托类型和EventHandler 272 16.4 触发事件 272 16.5 订阅事件 273 16.6 标准事件的用法 275 16.6.1 使用EventArgs类 275 16.6.2 通过扩展EventArgs来传递数据 276 16.6.3 使用自定义委托 276 16.7 MyTimerClass代码 278 16.8 事件访问器 279 第17章 接口 280 17.1 什么是接口 280 17.2 声明接口 283 17.3 实现接口 284 17.4 接口是引用类型 285 17.5 接口和as运算符 287 17.6 实现多个接口 287 17.7 实现具有重复成员的接口 288 17.8 多个接口的引用 289 17.9 派生成员作为实现 291 17.10 显式接口成员实现 291 17.11 接口可以继承接口 294 第18章 转换 297 18.1 什么是转换 297 18.2 隐式转换 298 18.3 显式转换和强制转换 299 18.4 转换的类型 300 18.5 数字的转换 301 18.5.1 隐式数字转换 301 18.5.2 溢出检测上下文 302 18.5.3 显式数字转换 303 18.6 引用转换 306 18.6.1 隐式引用转换 307 18.6.2 显式引用转换 308 18.6.3 有效显式引用转换 308 18.7 装箱转换 309 18.8 拆箱转换 311 18.9 用户自定义转换 312 18.9.1 用户自定义转换的约束 312 18.9.2 用户自定义转换的示例 313 18.9.3 计算用户自定义转换 314 18.9.4 多步用户自定义转换的示例 315 18.10 is运算符 316 18.11 as运算符 317 第19章 泛型 318 19.1 什么是泛型 318 19.2 C#中的泛型 320 19.3 泛型类 321 19.4 声明泛型类 321 19.5 创建构造类型 322 19.6 创建变量和实例 323 19.6.1 使用泛型的栈的示例 324 19.6.2 比较泛型和非泛型栈 325 19.7 类型参数的约束 326 19.7.1 Where子句 327 19.7.2 约束类型和次序 327 19.8 泛型方法 328 19.8.1 声明泛型方法 328 19.8.2 调用泛型方法 329 19.8.3 泛型方法的示例 330 19.9 扩展方法和泛型类 331 19.10 泛型结构 332 19.11 泛型委托 332 19.12 泛型接口 334 19.12.1 使用泛型接口的示例 335 19.12.2 泛型接口的实现必须唯一 336 19.13 泛型的协变和逆变 337 19.13.1 接口的协变和逆变 341 19.13.2 有关变化的更多内容 342 第20章 枚举数和迭代器 344 20.1 枚举数和可枚举类型 344 20.1.1 使用foreach语句 344 20.1.2 枚举数类型 345 20.2 使用IEnumerator接口 346 20.3 IEnumerable接口 349 20.4 不实现接口的枚举数 351 20.5 泛型枚举接口 352 20.6 IEnumerator接口 352 20.7 IEnumerable接口 354 20.8 迭代器 355 20.8.1 迭代器块 356 20.8.2 使用迭代器来创建枚举数 357 20.8.3 使用迭代器来创建可枚举类型 358 20.9 常见迭代器模式 360 20.10 产生可枚举类型和枚举数 360 20.11 产生多个可枚举类型 361 20.12 产生多个枚举数 362 20.13 迭代器实质 363 第21章 介绍LINQ 365 21.1 什么是LINQ 365 21.2 LINQ提供程序 366 21.3 查询语法和方法语法 368 21.4 查询变量 369 21.5 查询表达式的结构 370 21.5.1 from子句 371 21.5.2 join子句 372 21.5.3 什么是联结 373 21.5.4 查询主体中的fromletwhere片段 375 21.5.5 orderby子句 378 21.5.6 select…group子句 378 21.5.7 查询中的匿名类型 380 21.5.8 group子句 380 21.5.9 查询延续 382 21.6 标准查询运算符 383 21.6.1 查询表达式和标准查询运算符 384 21.6.2 标准查询运算符的签名 385 21.6.3 委托作为参数 386 21.6.4 LINQ预定义的委托类型 387 21.6.5 使用委托参数的示例 388 21.6.6 使用Lambda表达式参数的示例 388 21.7 LINQ to XML 390 21.7.1 标记语言 390 21.7.2 XML基础 390 21.7.3 XML类 391 21.7.4 使用XML树的值 394 21.7.5 使用XML属性 397 21.7.6 节点的其他类型 400 21.7.7 使用LINQ to XML的LINQ查询 401 第22章 异步编程简介 404 22.1 进程、线程以及异步编程 404 22.1.1 多线程处理带来的问题 405 22.1.2 多线程处理的复杂度 405 22.2 并行循环 406 22.3 BackgroundWorker类 408 22.3.1 BackgroundWorker类的示例代码 411 22.3.2 BackgroundWorker用于WPF程序的例子 414 22.4 异步编程模式 416 22.5 BeginInvoke和EndInvoke 417 22.5.1 等待—直到结束模式 418 22.5.2 AsyncResult类 419 22.5.3 轮询模式 420 22.5.4 回调模式 421 22.6 计时器 423 第23章 预处理指令 426 23.1 什么是预处理指令 426 23.2 基本规则 426 23.3 #define和#undef指令 427 23.4 条件编译 428 23.5 条件编译结构 429 23.6 诊断指令 431 23.7 行号指令 431 23.8 区域指令 432 23.9 #pragma warning指令 433 第24章 反射和特性 434 24.1 元数据和反射 434 24.2 Type类 435 24.3 获取Type对象 436 24.4 什么是特性 438 24.5 应用特性 439 24.6 预定义的保留的特性 439 24.6.1 Obsolete特性 439 24.6.2 Conditional特性 440 24.6.3 预定义的特性 441 24.7 有关应用特性的更多内容 442 24.7.1 多个特性 442 24.7.2 其他类型的目标 442 24.7.3 全局特性 443 24.8 自定义特性 443 24.8.1 声明自定义特性 444 24.8.2 使用特性的构造函数 444 24.8.3 指定构造函数 444 24.8.4 使用构造函数 445 24.8.5 构造函数中的位置参数和命名参数 445 24.8.6 限制特性的使用 446 24.8.7 自定义特性的最佳实践 447 24.9 访问特性 448 24.9.1 使用IsDefined方法 448 24.9.2 使用GetCustomAttribute方法 449 第25章 其他主题 450 25.1 概述 450 25.2 字符串 450 25.2.1 使用StringBuilder类 451 25.2.2 格式化数字字符串 452 25.3 把字符串解析为数据值 455 25.4 关于可空类型的更多内容 457 25.4.1 使用空接合运算符 458 25.4.2 使用可空用户自定义类型 459 25.5 Main方法 460 25.6 文档注释 461 25.6.1 插入文档注释 462 25.6.2 使用其他XML标签 463 25.7 嵌套类型 463 25.7.1 嵌套类的示例 464 25.7.2 可见性和嵌套类型 465 25.8 和COM的互操作 467 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.