What is developers role/responsibility wrt LSP (Liskov's Substitiution Principle)?
<p>LSP Principle --  if D is a subtype of B, then objects of type B in a program may be replaced with objects of type D without altering any of the desirable properties of that program.</p>

<p>for eg:</p>

<pre><code>Derived d = new Derived();
Base b = new Base();
//as per the principle, the below code should work
b = new Derived();
b = d;
</code></pre>

<p>.Net framework takes care of this. As a developer I don't have anything to do with this. Then what is the use of defining such principle?</p>