Static constructor is called before any static members are referenced
问题 According to the docs: A static constructor is used to initialize any static data, or to perform a particular action that needs to be performed once only. It is called automatically before the first instance is created or any static members are referenced . But i saw in stackoverflow post, the following quote from the C# specification: If a static constructor (§10.12) exists in the class, execution of the static field initializers occurs immediately prior to executing that static constructor.