A static constructor does not exist to be called before or after anything else, only as a way to force the compiler not to set a flag beforefieldinit.
More info on this here: What does the beforefieldinit flag do?
. beforefieldinit ( ), , Singleton.Instance, , , .
public void Foo()
{
if (false)
{
var bar = Singleton.Instance.SomeMethod();
}
}
, beforefieldinit ( - ), singleton, .
, , , , Instance.