Я прочитал некоторую информацию о дженериках в.ΝΕΤ и заметил одну интересную вещь.
Например, если у меня есть общий класс:
class Foo<T>
{
public static int Counter;
}
Console.WriteLine(++Foo<int>.Counter); //1
Console.WriteLine(++Foo<string>.Counter); //1
Два класса Foo<int>
и Foo<string>
отличаются во время выполнения. Но как насчет случая, когда не общий класс имеет общий метод?
class Foo
{
public void Bar<T>()
{
}
}
Очевидно, что существует только один класс Foo
. Но как насчет метода Bar
? Все общие классы и методы закрываются во время выполнения с параметрами, с которыми они были связаны. Означает ли это, что класс Foo
имеет множество реализаций Bar
и где информация об этом методе хранится в памяти?