I\'ve been programming in C# and Java recently and I am curious where the best place is to initialize my class fields.
Should I do it at declaration?:
The semantics of C# differs slightly from Java here. In C# assignment in declaration is performed before calling the superclass constructor. In Java it is done immediately after which allows 'this' to be used (particularly useful for anonymous inner classes), and means that the semantics of the two forms really do match.
If you can, make the fields final.