I'm throwing this out there just as a question of curiosity...
Assuming you're only expecting/wanting one method to be provided, would this be frowned upon or bad practice?
public class Something {
public Action OnRemove = () => { };
public Action<object, EventArgs> OnFinishedLoading = (sender, e) => { };
}
// then used like...
something.OnRemove = () => { /*do something...*/ };
something.OnFinishedLoading = (sender, e) => { /*do something else...*/ };
I realize this is like cheating at events, but I is there anything that is bad about this approach? Would this cause any potential issues with your application in the long run?
I realize if you're wanting more than one method to run, then an event would be better, this is mainly a question of if you're only wanting/expecting one method.