Следующий код позволяет мне сохранить значение для каждого типа T:
public static class MyDict<T> {
public static T Value;
}
Я могу хранить столько значений, сколько есть типов, и компилятор не знает раньше, какие типы я буду использовать. Как и где хранятся эти значения статического поля?
Обновление: Очевидно, он хранится в памяти, но я хочу знать об этой памяти. Это куча? Это какая-то специальная память CLR? Как это называется? Что еще хранится таким образом?
Обновление 2:
JITter генерирует единую реализацию MyDict<__Canon> для всех аргументов ссылочного типа MyDict<T>. Тем не менее, значения хранятся отдельно. Я предполагаю, что для каждого аргумента типа есть еще какая-либо структура типа-типа. В то время как vtable связана с JITted MyDict<__Canon>, поля являются отдельными. Я прав?