when are static members of a static class constructed?
The static constructor and all initialization occurs before the first instance of that class is created or any static members are referenced.
Typically, the static constructor and all static members are initialized immediately before the first time you refer to the class, though technically it can happen at any point prior to the first usage.
If they are constructed prior to use, then could I at all benefit by lazy instantiation? (instantiating them only when they are requested?)
You may benefit from this, particularly if the values require significant initialization or large memory usage, and may not always be used. The Lazy(Of T)
class makes this fairly simple to implement.