Recall how OOP's predecessor process-oriented programming provided us with a better understanding for the philosophy behind OOP. By looking at the background for C#, we can similarly appreciate and gain a further understanding for the design goals of this language.