Hmm... I'm surprised that compiles (it does, I checked). I'm not aware of any guarantee that would make this safe. Use a static constructor...
Edit: I accept (see better answer above) that it will work; but my idea with code is to keep it as simple and obvious as possible. If it isn't obvious that it will work (and it can't be if you have to ask), then don't write it that way...
In particular, problems with relying on field order:
- it can break if you move code around (which I often do)
- it can break if you split the code into
partial
classes
My advice remains: use a static constructor for this scenario.