书籍简介:
本书围绕C#语言元素、.NET资源管理、使用C#表达设计、创建二进制组件和使用框架等主题,针对50个常见问题给出了详实的解决方案,并就提升编程效率给出了合理建议。书中内容共分6章,分别讲述了实际编程中不可或缺的习惯用法,如何更好地配合开发环境以期在优化之前解决问题,如何用C#语言良好地表达设计意图,BCL、Parallel Task Library的最常见用法和使用框架过程中常用的技巧,如何在C#中使用动态特性,以及一些对创建强壮、易于维护的程序来说非常重要的难以归类的主题。
本书适合所有C#程序员,也可供高等院校相关专业师生参考。
作者简介:
(美)瓦格纳 著,陈黎夫 译
出版日期:
2010年12月
章节目录:
第1章 C#语言习惯
条目1 使用属性而不是可访问的数据成员
条目2 用运行时常量(readonly)而不是编译期常量(const)
条目3 推荐使用is或as操作符而不是强制类型转换
条目4 使用Conditional特性而不是#if条件编译
条目5 为类型提供ToString()方法
条目6 理解几个等同性判断之间的关系
条目7 理解GetHashCode()的陷阱
条目8 推荐使用查询语法而不是循环
条目9 避免在API中使用转换操作符
条目10 使用可选参数减少方法重载的数量
条目11 理解短小方法的优势
第2章 .NET资源管理
条目12 推荐使用成员初始化器而不是赋值语句
条目13 正确地初始化静态成员变量
条目14 尽量减少重复的初始化逻辑
条目15 使用using和try/finally清理资源
条目16 避免创建非必要的对象
条目17 实现标准的销毁模式
条目18 区分值类型和引用类型
条目19 保证0为值类型的有效状态
条目20 保证值类型的常量性和原子性
第3章 使用C#表达设计
条目21 限制类型的可见性
条目22 通过定义并实现接口替代继承
条目23 理解接口方法和虚方法的区别
条目24 用委托实现回调
条目25 用事件模式实现通知
条目26 避免返回对内部类对象的引用
条目27 让类型支持序列化
条目28 提供粗粒度的因特网服务API
条目29 支持泛型协变和逆变
第4章 使用框架
条目30 使用覆写而不是事件处理函数
条目31 使用IComparable和IComparer实现顺序关系
条目32 避免使用ICloneable接口
条目33 仅用new修饰符处理基类更新
条目34 避免重载基类中定义的方法
条目35 PLINQ如何实现并行算法
条目36 理解PLINQ在I/O密集场景中的应用
条目37 注意并行算法中的异常
第5章 C#中的动态编程
条目38 理解动态类型的优劣
条目39 使用动态类型表达泛型类型参数的运行时类型
条目40 将接受匿名类型的参数声明为dynamic
条目41 用DynamicObject或IDynamicMetaObjectProvider实现数据驱动的动态类型
条目42 如何使用表达式API
条目43 使用表达式将延迟绑定转换为预先绑定
条目44 尽量减少在公有API中使用动态对象
第6章 杂项
条目45 尽量减少装箱和拆箱
条目46 为应用程序创建专门的异常类
条目47 使用强异常安全保证
条目48 尽量使用安全的代码
条目49 实现与CLS兼容的程序集
条目50 实现小尺寸、高内聚的程序集
封面图: