And, if you have a class A which inherits from B which inherits from C (and DoWork implementations returning As and Bs) what does:
C wtf = worker.DoWork();
Resolve as? It'd just be too confusing for us humble programmers.
And I'm not letting you take away my god-given right to ignore return values!
I'm going to talk to god (Erik) about that!
Object should become a forbidden word, you can only inherit from object.
let's say we have A that inherits from B
if we have two methods:
A DoWork() and B DoWork()
A a = worker.DoWork() would result in using A DoWork(), if you want to use the B one use B b = worker.DoWork(), you lazy git
I've programmed for 6+ years now and I've never run into these problems before. Until recently,... But anyway,.. I've just attached a bool to the end of the parameters B DoWork(bool thisisherebecauseprogramlanguagesarestupid);