Интересно, почему этот код не заканчивается бесконечной рекурсией. Я предполагаю, что он связан с автоматической инициализацией статических членов значениями по умолчанию, но может ли кто-нибудь сказать мне "шаг за шагом", как "a" получает значение 2 и "b" из 1?
public class A
{
public static int a = B.b + 1;
}
public class B
{
public static int b = A.a + 1;
}
static void Main(string[] args)
{
Console.WriteLine("A.a={0}, B.b={1}", A.a, B.b); //A.a=2, B.b=1
Console.Read();
}