As others have said, the base constructor gets called first. However, constructors are not really the first thing that happens.
Let's say you have classes like this:
class A {}
class B : A {}
class C : B {}
First, field initializers will be called in order of most-derived to least-derived classes. So first field initializers of C
, then B
, then A
.
The constructors will then be called in the opposite order: First A
's constructor, then B
, then C
.