推荐几本适合于Visual C#2005初学者的专业书
答案:3 悬赏:70 手机版
解决时间 2021-07-17 20:19
- 提问者网友:星軌
- 2021-07-17 11:35
推荐几本适合于Visual C#2005初学者的专业书
最佳答案
- 五星知识达人网友:西风乍起
- 2021-07-17 11:58
《C#入门经典》。第三版是用C#2005写的。第四版是用C#2008写的。推荐看第四版。2008和2005的基础部分是一样的。。
全部回答
- 1楼网友:低血压的长颈鹿
- 2021-07-17 13:34
人民邮电出版社的<<易学C#>>
本书目录- 预备课:学习从这里开始 1 1.软件=程序+文档 1 2.程序起什么作用 2 3.为何要面向对象 2 4.什么是UML 3 5..NET与C# 4 谈微软公司的.NET战略 4 C#的产生与特点 5 C#与.NET的关系 6 6.开启C#的钥匙——兴趣与正确的学习方法 7 7.习题练习 8 第1部分 C#与UML基础 第1章 开篇经典——“Hello,World” 11 1.1 Hello,World 11 1.2 程序的结构分析 13 1.2.1 命名空间 13 1.2.2 类和类的方法 13 1.2.3 程序的输入输出 14 1.3 程序的执行起点——Main函数 14 1.4 控制台的输入和输出 14 1.4.1 控制台的输入:Read和ReadLine 15 1.4.2 控制台的输出:Write和WriteLine 15 1.5 程序的注释 15 1.5.1 模块(类)注释规范 16 1.5.2 类属性注释规范 16 1.5.3 方法注释规范 16 1.5.4 代码间注释规范 16 1.6 习题练习 17 第2章 数据类型和表达式 18 2.1 数据类型简介 18 2.2 值类型 19 2.2.1 简单类型 19 2.2.2 结构类型 22 2.2.3 枚举类型 23 2.3 引用类型 24 2.4 null和void 24 2.4.1 null 24 2.4.2 void 24 2.5 变量和常量 25 2.5.1 变量 25 2.5.2 常量 29 2.6 运算处理 29 2.6.1 算术运算 30 2.6.2 赋值运算 32 2.6.3 关系运算 32 2.6.4 逻辑运算 33 2.6.5 位运算 33 2.6.6 条件运算 35 2.6.7 其他运算符 36 2.6.8 运算符的优先级别 36 2.7 指针类型 37 2.7.1 指针的定义与声明 37 2.7.2 指针的内容 37 2.7.3 指针的运算 38 2.7.4 指针的使用 40 2.8 习题练习 41 第3章 数据类型转换 43 3.1 装箱和拆箱 43 3.1.1 装箱(Boxing) 43 3.1.2 拆箱(Unboxing) 44 3.2 隐式数据类型转换 45 3.2.1 隐式数值类型转换 45 3.2.2 隐式枚举类型转换 46 3.2.3 隐式引用类型转换 47 3.3 显式数据类型转换 48 3.3.1 显式数值类型转换 48 3.3.2 显式枚举类型转换 50 3.3.3 显式引用类型转换 50 3.4 习题练习 51 第4章 计算控制——结构化程序设计 53 4.1 如果——条件语句 53 4.1.1 如果,那么——if 53 4.1.2 如果,那么;否则——if,else 55 4.1.3 如果中的如果——嵌套if,else 56 4.1.4 如果,那么;否则的另一种表达方式——?: 57 4.1.5 多条件选择——switch 58 4.2 会转圈的语句——循环语句 60 4.2.1 for循环 60 4.2.2 while循环 63 4.2.3 do/while循环 65 4.2.4 foreach循环 66 4.3 跳出循环——跳转语句 67 4.3.1 使用break和continue语句的区别 67 4.3.2 饱受争议的goto语句 68 4.3.3 return语句的使用 70 4.4 C#预处理器指令 70 4.4.1 使用预处理指令——#define和#undef 70 4.4.2 条件编译——#if、#elif、#else和#endif 71 4.4.3 警告与错误信息——#warning和# error 72 4.4.4 可视编辑器提示——#region和#endregion 72 4.4.5 指定行号——#line 72 4.4.6 关闭警告消息——#pragma 72 4.5 程序员加油站——递归法 73 4.5.1 递归法概述 73 4.5.2 递归的精髓——求解汉诺塔问题 73 4.6 习题练习 75 第5章 字符串、数组与集合 77 5.1 理解字符串 77 5.1.1 字符串类型定义 77 5.1.2 字符串类型应用实例 79 5.1.3 string与String的区别 82 5.2 存储盒子的“仓库”——数组 82 5.2.1 数组的定义 82 5.2.2 二维数组 85 5.2.3 多维数组和交错数组 87 5.3 程序员加油站——数组的应用 88 5.3.1 把数组作为参数传递给方法 88 5.3.2 使用数组模拟栈操作 89 5.3.3 数据的排序与冒泡排序算法 91 5.4 一个与数组相似的新类型——集合 92 5.4.1 集合的概述 93 5.4.2 集合类的使用实例 93 5.4.3 集合与数组的区别 97 5.5 习题练习 97 第6章 C#程序员UML建模基础 100 6.1 为什么要建模 100 6.2 UML概述 101 6.3 用例建模 101 6.3.1 用例图 101 6.3.2 用例描述 102 6.3.3 用例建模实例 102 6.4 类图 103 6.4.1 绘制类图 104 6.4.2 类图中的各种关系 105 6.5 活动图 107 6.6 状态图 107 6.7 序列图 108 6.8 习题练习 109 第2部分 C#与面向对象程序设计 第7章 初识面向对象程序设计 113 7.1 万物皆为对象 113 7.2 初识封装 114 7.3 类和对象 114 7.3.1 类的声明 114 7.3.2 类的成员 115 7.3.3 类的成员的可见性 116 7.3.4 对象的创建与使用 117 7.3.5 静态成员与非静态成员 118 7.3.6 this关键字 118 7.4 对象的创建与销毁 119 7.4.1 构造函数 120 7.4.2 静态构造函数 122 7.4.3 析构函数 124 7.5 类的执行工具——方法 124 7.5.1 方法的声明 125 7.5.2 方法的返回值 125 7.5.3 方法的参数 126 7.5.4 方法的重载 127 7.6 域、属性和索引指示器 128 7.6.1 域 128 7.6.2 属性 131 7.6.3 索引指示器 133 7.7 再论封装 134 7.7.1 用传统的读、写方法封装 134 7.7.2 用属性来实现封装 135 7.8 命名空间 135 7.8.1 命名空间的声明 136 7.8.2 成员与类型声明 137 7.8.3 使用指示符 137 7.9 习题练习 140 第8章 复用现有的代码——继承与多重继承 142 8.1 继承的意义 142 8.1.1 继承的引入 142 8.1.2 为何要使用继承 143 8.2 用UML图描述继承 144 8.3 父与子——类的继承 145 8.3.1 基类与派生类 145 8.3.2 继承中的构造函数 151 8.3.3 访问和隐藏基类方法 152 8.3.4 虚方法与重写方法 153 8.3.5 抽象类和抽象方法 154 8.3.6 密封类和密封方法 155 8.4 继承与访问修饰符 156 8.4.1 可见性访问修饰符 156 8.4.2 其他访问修饰符 157 8.5 双亲与子——多重继承 157 8.5.1 水陆两用汽车的类图设计 157 8.5.2 用接口实现多重继承 158 8.5.3 用扩展方法实现多重继承 160 8.6 C#的继承规则 161 8.7 再论继承与封装的关系 161 8.8 程序员加油站——又论冒泡排序算法 162 8.9 习题练习 166 第9章 改写对象的行为——多态 169 9.1 笔与其派生类的写方法 169 9.2 多态的类型 170 9.2.1 编译时的多态性 170 9.2.2 运行时的多态性 170 9.3 多态的实现 172 9.3.1 通过接口实现的多态性 172 9.3.2 通过继承实现的多态性 174 9.3.3 通过抽象类实现的多态性 174 9.4 程序员加油站——经典的图形游戏 176 9.4.1 类图分析 176 9.4.2 代码实现与分析 177 9.4.3 游戏的客户端 181 9.5 习题练习 183 第10章 多功能的运算符——运算符重载 184 10.1 引入运算符重载 184 10.2 运算符重载的规则 185 10.3 一元运算符的重载 186 10.4 二元运算符的重载 188 10.5 比较运算符的重载 190 10.6 习题练习 191 第11章 软件模块之间的协定——接口 192 11.1 打印机程序的困惑 192 11.2 接口的意义 193 11.2.1 软件的多层设计思考 193 11.2.2 组件与接口 193 11.2.3 组件化程序设计思考 194 11.3 接口的定义 195 11.4 接口的成员 195 11.5 在UML中对接口的描述 197 11.6 接口的继承与多重继承 198 11.7 接口成员访问 199 11.8 接口的实现 200 11.8.1 在类中实现接口 201 11.8.2 显式实现接口成员 203 11.8.3 显式与隐式实现接口成员的区别 205 11.8.4 接口映射 205 11.8.5 接口的重实现 209 11.9 抽象类与接口 210 11.9.1 在抽象类中实现接口 210 11.9.2 抽象与接口的区别 210 11.9.3 抽象与接口的使用 211 11.10 接口作为返回值与参数 211 11.11 程序员加油站——打印机程序的设计 214 11.12 习题练习 216 第12章 面向对象设计原则与UML描述 218 12.1 腐化的软件设计 218 12.1.1 设计的臭味 218 12.1.2 软件为何会腐化 220 12.2 简单就是美——单一职责原则(SRP) 220 12.2.1 从Communication类的设计来看待单一职责原则 221 12.2.2 分离耦合的职责 222 12.3 修改封闭扩展开放——开放—封闭原则(OCP) 222 12.3.1 开封—封闭原则概述 222 12.3.2 银行储蓄业务的分析与设计 223 12.4 子类型替换基类型——Liskov替换原则(LSP) 226 12.4.1 Liskov替换原则概述 226 12.4.2 违反Liskov替换原则的场景 226 12.4.3 用提取公共部分的方法来代替继承 228 12.5 依赖于抽象——依赖倒置原则(DIP) 229 12.5.1 依赖倒置原则概述 229 12.5.2 再论银行储蓄业务的设计 230 12.6 分离接口——接口隔离原则(ISP) 232 12.6.1 接口污染 232 12.6.2 分离客户就是分离接口 234 12.6.3 使用委托分离接口 235 12.6.4 使用多重继承分离接口 235 12.7 习题练习 236 第3部分 C#语言高级特性 第13章 程序的体检医生——异常处理 239 13.1 异常处理概述 239 13.2 C#异常处理类 240 13.3 try、catch和finally 241 13.3.1 try和catch的用法 241 13.3.2 finally的用法 244 13.4 把异常传给调用者 245 13.4.1 调用者处理 245 13.4.2 抛出异常 245 13.4.3 重发异常 246 13.4.4 添加异常信息 247 13.5 用户自定义异常 248 13.5.1 定义自己的异常类 248 13.5.2 从自己的代码中抛出异常 248 13.6 细说异常使用 249 13.6.1 何时考虑抛出异常 249 13.6.2 在异常处理程序中做什么 249 13.6.3 在何处放置异常处理程序 250 13.6.4 异常与返回错误代码的对比 250 13.6.5 永远不要预测bug造成的后果能够被异常处理程序所捕获 250 13.7 习题练习 250 第14章 房屋中介与租房——委托与事件 252 14.1 从房屋中介与租房看待委托与事件 252 14.2 又论“Hello,World” 253 14.3 委托的概述 254 14.3.1 委托的声明 254 14.3.2 将方法绑定到委托 256 14.4 事件 257 14.4.1 引入事件 258 14.4.2 声明事件 260 14.4.3 使用事件 260 14.4.4 访问器形式的事件 261 14.4.5 在接口中声明事件 263 14.5 多播委托 264 14.6 委托中的协变和逆变 266 14.7 匿名方法 268 14.7.1 什么是匿名方法 268 14.7.2 匿名方法的参数与返回值 268 14.7.3 匿名方法块规则 269 14.7.4 匿名方法的外部变量 269 14.8 习题练习 272 第15章 程序集与反射 274 15.1 再论“Hello, World” 274 15.1.1 创建“Hello, World”的业务逻辑类库 274 15.1.2 详解C#程序集版本控制文件 275 15.1.3 创建“Hello, World”应用层 277 15.2 反射的概述 278 15.2.1 什么是反射 278 15.2.2 反射的作用 279 15.3 反射的实际使用 280 15.3.1 反射AppDomain的程序集 280 15.3.2 利用反射获取类型信息 281 15.3.3 通过反射创建类型的实例 282 15.3.4 利用反射动态调用类成员 284 15.4 反射的性能 286 15.5 习题练习 286 第16章 序列化与反序列化 287 16.1 序列化的概述 287 16.1.1 从权限系统来看待序列化和反序列化 287 16.1.2 序列化的作用 288 16.1.3 为序列化配置对象 289 16.2 序列化和反序列化方式 290 16.3 使用BinaryFormatter进行序列化 291 16.4 使用SoapFormatter进行序列化 293 16.5 使用XmlSerializer进行序列化 295 16.6 自定义序列化 297 16.6.1 使用ISerializable自定义序列化 298 16.6.2 使用特性自定义序列化 301 16.7 序列化过程中的步骤 302 16.8 序列化准则 303 16.9 习题练习 303 第17章 项目小组和程序员——进程和线程 304 17.1 进程与线程概述 304 17.1.1 从打印工资报表看待进程与线程 304 17.1.2 进程与线程的关系 306 17.2 .NET平台下与进程进行交互 306 17.2.1 Process类简介 306 17.2.2 简单的进程操作实例 307 17.3 初识多线程操作 310 17.3.1 System.Threading概述 310 17.3.2 一个简单的线程例子 312 17.3.3 ThreadStart的使用 313 17.3.4 线程的并行操作 314 17.3.5 终止线程 316 17.3.6 前台线程与后台线程 318 17.3.7 线程的优先级 319 17.4 线程中存在的问题 321 17.4.1 竞争条件 321 17.4.2 锁定 323 17.5 线程同步 325 17.5.1 没有同步的情况 325 17.5.2 lock语句 326 17.5.3 Monitor类 328 17.5.4 使用lock与Monitor来解决生产者与消费者的问题 330 17.5.5 Events类 333 17.5.6 互斥对象 336 17.6 多线程的自动管理 336 17.6.1 线程池 337 17.6.2 定时器 340 17.7 习题练习 343 第18章 万能模板——泛型 345 18.1 泛型的引入 345 18.1.1 为什么要使用泛型 345 18.1.2 创建和使用泛型 347 18.1.3 命名规则 348 18.2 泛型类 348 18.2.1 声明泛型类 348 18.2.2 类型参数 349 18.2.3 泛型类的继承 350 18.2.4 泛型类的成员 350 18.2.5 泛型类中的静态变量 351 18.2.6 泛型类中的静态构造函数 351 18.2.7 访问受保护的成员 352 18.2.8 泛型类中的方法重载 352 18.2.9 创建泛型类的注意事项 353 18.3 泛型接口 353 18.3.1 实现接口的惟一性 353 18.3.2 显式接口成员实现 354 18.4 泛型委托 355 18.5 泛型方法 355 18.5.1 创建和使用泛型方法 355 18.5.2 abstract、virtual和override泛型方法 356 18.5.3 泛型静态方法 357 18.5.4 类型实参推断 358 18.6 参数约束 358 18.7 习题练习 360 第19章 C# 3.0语言新特性 364 19.1 隐式类型 364 19.1.1 隐式类型局部变量的声明与使用 364 19.1.2 隐式类型数组 365 19.1.3 隐式类型局部变量的使用限制 366 19.1.4 隐式类型局部变量的使用注意事项 366 19.2 匿名类型 367 19.2.1 引入匿名类型 367 19.2.2 创建和使用匿名类型 368 19.2.3 匿名类型与隐式类型变量的区别 369 19.3 扩展方法 369 19.3.1 定义扩展方法 369 19.3.2 导入扩展方法 370 19.3.3 调用扩展方法 370 19.3.4 扩展方法使用注意事项 372 19.4 对象和集合初始化器 372 19.4.1 引入对象初始化器 372 19.4.2 在初始化语法中调用自定义构造函数 374 19.4.3 初始化内部类型 375 19.4.4 集合初始化器 376 19.5 Lambda表达式 377 19.5.1 创建Lambda表达式 377 19.5.2 Lambda表达式转换 378 19.5.3 类型推断 379 19.5.4 重载抉择 381 19.5.5 表达式树 381 19.6 习题练习 382 第4部分 基于UML的面向对象分析与设计过程 第20章 基于UML的面向对象分析与设计过程 384 20.1 细说需求分析 384 20.1.1 需求分析流程 385 20.1.2 基于Web通用框架的需求描述 387 20.2 构造业务用例图 387 20.2.1 确定系统的参与者 387 20.2.2 确定系统的业务用例 388 20.2.3 绘制业务用例图 389 20.3 使用活动图来描述业务用例 389 20.3.1 绘制操作子系统插件菜单的活动图 389 20.3.2 绘制管理用户权限的活动图 390 20.4 构造系统用例图 390 20.5 用例规约 391 20.5.1 基本流 392 20.5.2 备选流 393 20.5.3 特殊需求 393 20.5.4 前置条件与后置条件 393 20.5.5 描述用例规约实例 393 20.6 绘制业务领域类图 396 20.7 系统架构设计 397 20.8 数据库设计 398 20.8.1 数据库表设计 398 20.8.2 表关系设计 399 20.9 总体类图设计 400 20.10 模块详细设计与编码 401 20.10.1 数据库通用操作组件:IBHDataAccess 401 20.10.2 用户权限管理接口:IBHPowerMangageInterface 402 20.10.3 用户权限管理业务逻辑操作层:IBHPowerManageClass 404 20.10.4 用户权限管理页面表示层:IBHPowerManage 405 20.10.5 Web通用框架:IBHWebFramework 406 20.11 Web通用框架的部署与测试 408 20.12 习题练习 410
- 2楼网友:北方的南先生
- 2021-07-17 12:24
C#大学教程、C#高级编程、Programming C#、Visual Studio 2005范例精要解析、
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯