In C#, when you do
Class(Type param1, Type param2):base(param1)
The order is:
Then starting with the most derived class:
Foo() : this(...)etc
Note that in Java, the base class is initialized before variable initializers are run. If you ever port any code, this is an important difference to know about :)
I have a page with more details if you're interested.