Здравствуйте, vdimas, Вы писали:
S>>А почему тело Invoke на лету генерируется? V>Потому что тело Invoke может быть уникальным для различных экземпляров делегатов одного и того же типа.
V>Причём, даже если тело Invoke было ранее создано для конкретного SomeObj.SomeMethod, всё равно каждый раз с 0-ля генерится Invoke конкретно для типа SomeObj и его метода SomeMethod. V>Т.е., с каждым экземпляром делегата растёт и память, занимаемая областью кода. V>И финализация делегатов от этого тоже чуть дороже, потому что надо убирать память из сегментов кода, а там с перемещениями и уплотнениями не так всё радужно, как в сегментах данных.
А про это можно где-то почитать, потому что звучит крайне странно? Ладно, в первый раз надо скомплировать il код, но
далее он же кэширутся как для SomeObj.SomeMethod так и для других делегатов. А в новый версиях C# (>= 3.0) это
как-то исправлялось?