title: Learning to use Interfaces effectively
body: <p>I've been developing software in C# for a while, but one major area that I don't use effectively enough is interfaces. In fact, I'm often confused on the various ways they can be used and when to use them. For example, I know methods can return interfaces, can take them as parameters, can be derived from them etc. This concept is a definite weakness for me</p>
  
  <p>I was wondering if anyone knew of a source / tutorial that clearly and thoroughly explains interfaces in depth and the various ways they can be used?</p>