¿Cuál es el orden de inicialización de la variable estática en C #?

Página MSDN DependencyProperty.AddOwner ofrece un ejemplo con dos clases con miembros estáticos, y el miembro de una clase depende del miembro de la otra clase para la inicialización. Creo que MSDN está equivocado: el orden de inicialización de las variables estáticas no es confiable en C #tal como es en C ++ o en cualquier otro lugar. Probablemente me equivoque porque la biblioteca WPF en sí está escrita de esa manera y funciona bien. ¿Qué me estoy perdiendo? ¿Cómo puede el compilador de C # posiblemente saber el orden de inicialización seguro?

Respuestas a la pregunta(3)

Su respuesta a la pregunta