title: Advantages of using delegates?
body: <p>I'm looking to implement the Observer pattern in VB.NET or C# or some other first-class .NET language. I've heard that delegates can be used for this, but can't figure out why they would be preferred over plain old interfaces implemented on observers. So,</p>
  
  <ul>
  <li>Why should I use delegates instead of defining my own interfaces and passing around references to objects implementing them?</li>
  <li>Why might I want to avoid using delegates, and go with good ol'-fashioned interfaces?</li>
  </ul>