Is it Enough to Define IMyInterface? Do I Need IMyInterface as Well?

A Best Practice for Designing Interfaces in .NET C#

Is it enough to define IMyInterface? Do I need IMyInterface as well?

While working on your masterpiece software system, you define your own interfaces to act as contracts between your different system modules and to expose some contracts to the outside world. This is not rocket science to any software developer.

However, what I learned throughout my years as a Software Engineer is that we should put more care into how we design our interfaces. If you search the internet, you would find tons of resources discussing the best practices to follow when designing interfaces, some of these are actually good resources.

But, I have one more best practice to tell you about which I couldn’t find online except for rare coincidences.