This is one of my tutorials about Open Closed Principle with CSharp and you can find its video course in below link : https://www.aparat.com/v/EwZym
In object-oriented programming, the open–closed principle states "software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification"; that is, such an entity can allow its behaviour to be extended without modifying its source code. The name open–closed principle has been used in two ways. Both ways use generalizations (for instance, inheritance or delegate functions) to resolve the apparent dilemma, but the goals, techniques, and results are different.
From wiki: https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle