c# - Interface / Abstract Class Coding Standard -
i spotted proposed c# coding-standard stated "try offer interface abstract classes". know rationale this? the .net framework design guidelines have interesting things interfaces , abstract classes. in particular, note interfaces have major drawback of being less flexible classes when comes evolution of api. once ship interface, members fixed forever, , additions break compatibility existing types implement interface. whereas, shipping class offers more flexibility. members can added @ time, after initial version has shipped, long not abstract. existing derived classes can continue work unchanged. system.io.stream abstract class provided in framework given example. shipped without support timing out pending i/o operations, version 2.0 able add members supported feature, existing subclasses. thus, having corresponding interface each abstract base class provides few additional benefits. interface cannot publically exposed, or you're left @ square 1 in ter...