C# is a general-purpose language that can work in a managed environment. It is the .NET Common Language Runtime (CLR) that handles the most tricky logic for us, such as the lifecycle of variables and their removal from memory, process isolation, thread abstraction, variably safe typing, and so on.
Although we will assume that we will use C# only in object-oriented programming (OOP), the language itself supports other paradigms as well.
Note
In terms of class design, the following tenets are at the basis of OOP:
Encapsulation: Any class can hide its core logic in external items.
Inheritance: Any class can expand the capability of a mother class, by adding more specific properties or adding/changing logics.
Polymorphism: Any object, if extended by inheritance, when compared to other objects of the same parent family, may produce different business results by applying the eventually changed logic as allowed by inheritance, creating what names a polymorphic behavior...