ВАЩЕ НЬЮБОВСИЙ вопрос про Методы!!!! С#

ВАЩЕ НЬЮБОВСИЙ вопрос про Методы!!!! С#
я учился сам по книжкам поэтопу теорией владею неполностью и кусками =)

Поэтому возник следущий вопрос
если у меня в класе определено метод НЕстатический (который работает с полями этого класса)
и есть допустим 10000 экземпляров этого класса

Получается что каждый экземпляр будет иметь свою собстеную копию этого метода (и занимать память) или метод будут один для всех экземпляров и предоватся по сылке или чем там оно передается =))))

короче - НЕстатический метод занимает память в экземплярах класса или нет??? ?

и если да то как этого избежать?

  • У всех нестатических методов класса есть один неявный параметр - экземляр класса, т. е. X.f(5); на самом деле преобразуется к чему-то вроде $X$f(x,5); Таким образом, код будет существовать в единственном экземляре. Никаких дополнительных затрат нет.
    У виртуальных методов ситуация чуть сложнее - в каждом экземпляре класса хранится ссылка на статическую таблицу виртуальных методов класса, а в таблице - ссылки на методы. Но все равно это незначительный расход памяти.
  • Методы вообще говоря не занимают память таким же образом как поля. Так что не волнуйтесь так. У вас будет всего один экземпляр метода.