Во время работы над приложением С# я заметил, что в нескольких местах статические инициализаторы имеют зависимости друг от друга следующим образом:
static private List<int> a = new List<int>() { 0 };
static private List<int> b = new List<int>() { a[0] };
Не делай ничего особенного, что сработало. Это просто удача? Есть ли у С# правила для решения этой проблемы?
Изменить: (re: Panos) В файле лексический порядок кажется королем? как насчет файлов?
В поиске я пробовал циклическую зависимость, подобную этой:
static private List<int> a = new List<int>() { b[0] };
static private List<int> b = new List<int>() { a[0] };
и программа не работала одинаково (тест не удался по всей доске, и я не смотрел дальше).