摘要:
《C# 核心技术指南》 下列阅读笔记基于《C#7.0 核心技术指南》,部分章节尚未完成梳理。以下是已完成的章节: 第1章 C#和.NET Framework简介 第2章 C# 语言基础 第3章 在C#中创建类型 第4章 C#的高级特性 第5章 框架概述 第6章 框架基础 第7章 集合 第8章 LIN 阅读全文
摘要:
异常的使用 不管是网络还是出版读物,关于 C# 异常系统性的资料都比较少,我所在的工控领域也很少有开发者使用异常。异常实际上是一种非常好的机制,很值得推广。为此我根据过往的学习积累,结合一些项目经验,撰写本文。 1. 为什么应该使用异常 在开始本文之前,我们先看一下常用的几种“报告错误”的方式: 方 阅读全文
摘要:
第9章 常用的设计模式 9.1 聚合组件(aggregate component) 聚合组件将多个 底层 类型集中到一个 简化的高层 类型中,用于支持常用场景。例如,E-mail 组件,把简单邮件传输协议(SMTP)、套接字、编码(encoding)等等集中在一起。 聚合组件的目的是提供一个 更高层 阅读全文
摘要:
8.10 序列化(第二版) .NET框架提供了三种主要的序列化技术,如下: 数据协定(Data Contract) 序列化; XML 序列化; 运行时 序列化(二进制和SOAP) DO:在设计新的类型时考虑到序列化。 如果类型实例需要持久化,或需要传输,则设计时要考虑如何序列化。 1 选择 阅读全文
摘要:
第8章 使用准则 8.1 数组 DO:公共 API 中 优先 使用集合, 避免 使用数组。 public class Order { public Collection<OrderItem> Items { get { ... } } ... } DON'T : 不要 使用 r 阅读全文
摘要:
第7章 异常 7.1 抛出异常 DO:操作失败应该通过 抛出异常 的方式报告,而非通过 返回错误码 。 CONSIDER:在代码遇到严重问题且无法继续安全地执行时,要调用 System.Enviroment.FailFast 终止进程,而不是抛出异常。 该方法会向 Windo 阅读全文
摘要:
第6章 扩展性设计 6.1 扩展机制 6.1.1 非密封类 CONSIDER : 考虑 用非密封类(且不包含任何虚成员、受保护成员)为框架提供扩展性。 这种类提供的扩展性广受用户欢迎,且开销不高。 6.1.2 受保护的成员 CONSIDER:受保护的成员用于 高级 的定制方案。 用 阅读全文
摘要:
第5章 成员设计 5.1 成员设计的通用规范 5.1.1 成员重载 形参要求: DO:在较长的重载中,应使用 描述 性的参数名来说明较短的重载使用的默认值。 以如下代码举例,ignoreCase 暗示“短重载大小写敏感”,如果参数名改为 caseSensitive,将不会隐含该含义。 publi 阅读全文
摘要:
第4章 类型设计准则 DO:类应该由一组定义明确、相互关联的成员组成。 一个类,如果能用一句话描述清楚它的用途,那么它的设计是优秀的。 4.1 类型(class、struct)和 namespace DO:namespace 用于组织类,通过 namespace 将相关功能按层次铺开,但不要 阅读全文