Статические переменные выделяются из кучи загрузчика AppDomain компилятором JIT, когда он преобразует IL в машинный код.Он напрямую компилирует адрес в код, очень эффективно.Он остается там до тех пор, пока куча не будет уничтожена при выгрузке AppDomain.Это не куча GC, адрес переменной никогда не меняется.
Если это переменная ссылочного типа, то некоторый код, который вы написали, будет запущен позже для инициализации переменной.Который хранит адрес куска памяти из кучи собранного мусора в переменную.Затем он обрабатывается сборщиком мусора точно так же, как любая другая ссылка, обновляя значение при сжатии кучи.И, конечно, очень высока вероятность того, что указанный объект окажется в поколении 2, если вы явно не назначите нуль переменной.