Orden de constructores / inicializadores estáticos en C #
Mientras trabajaba en una aplicación C #, me di cuenta de que en varios lugares, los inicializadores estáticos tienen dependencias entre sí, como esto:
static private List<int> a = new List<int>() { 0 };
static private List<int> b = new List<int>() { a[0] };
Sin hacer nada especial que funcionara. ¿Eso es sólo suerte? ¿C # tiene reglas para resolver esto?
Editar: (re: Panos) En un archivo el orden léxico parece ser el rey? ¿Qué pasa con los archivos?
Al mirar probé una dependencia cíclica como esta:
static private List<int> a = new List<int>() { b[0] };
static private List<int> b = new List<int>() { a[0] };
y el programa no funcionó igual (el traje de prueba falló en todos los ámbitos y no busqué más).