摘要:
下面的准则有助于确保库正确处理异常。 不要在框架代码中捕捉非特定异常(如 System.Exception、System.SystemException 等)以至忽略错误。 如果捕捉异常是为了再次引发或传输给其他线程,则可以捕捉这些异常。下面的代码示例演示的异常处理是不正确的。 避免在应用程序代码中捕捉非特定异常(如 System.Exception、System.System... 阅读全文
摘要:
当某一成员无法成功执行它应执行的操作时,将引发异常。这称为执行故障。例如,如果 Connect 方法无法连接到指定的远程终结点,则这就是一个执行故障,将有一个异常被引发。 下列准则可帮助确保在适当时引发异常。 不要返回错误代码。异常是报告框架中的错误的主要手段。 异常设计准则讨论了使用异常的许多好处。 通过引发异常来报告执行故障。如果某一成员无法按预期方式成功执行,则应将这种情况视为一个执行... 阅读全文
摘要:
枚举提供成组的常数值,它们有助于使成员成为强类型以及提高代码的可读性。枚举分为简单枚举和标志枚举两种。简单枚举包含的值不用于组合,也不用于按位比较。标志枚举应使用按位 OR 操作进行组合。标志枚举值的组合使用按位 AND 操作检查。 下列指南介绍了枚举设计的最佳做法。 一定要使用枚举强类型化参数、属性和表示值集的返回值。 一定要优选使用枚举而不是静态常量。 下面的代码示例演示了不正确的设计。 下... 阅读全文
摘要:
结构是值类型。结构是在堆栈上或以内联方式分配的,当结构超出范围时将被释放。通常情况下,值类型的内存空间分配和释放的开销较小;但在需要大量装箱和取消装箱操作的方案中,值类型的执行性能较引用类型要差。有关更多信息,请参见装箱和取消装箱(C# 编程指南)。 有关值类型和引用类型的更多信息,请参见通用类型系统概述。 不要为结构提供默认的构造函数。 如果某一结构定义了默认构造函数,则在创建该结构的数组... 阅读全文