D

Breaking Changes

Every single change that you make in a reusable library has the potential for breaking something. If you make a method faster, you may inadvertently reveal a race condition in your caller’s code. If you make a specific case slower while making the general case faster, you might exceed the maximum time your caller allowed, or reveal a different race condition. Correcting an incorrect return value is generally good, but some callers may create a dependency—knowingly or not—on the incorrect value you returned.

This appendix touches on many different kinds of changes, the kinds of things that can be broken by changes, and whether a change is one that the .NET BCL team would generally accept for the core .NET libraries. This content ...

Get Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.