I have recently fallen in love with interfaces – they make it so easy to distribute uniform changes across many objects… that is, until you want to add a member who's signature changes depending on which class inherits it
For example, I have two classes, Customers, and Events. Both inherit my "CustomCollection" interface. I want the interface to force the implementation of an Add method, but inevitably their arguments are different: Add(Customer cust) , Add(Event ev). Is there a way to tell the interface that the parameters can change depending on the class?