Do Anonymous Methods, Delegates, Action, Func и так же выделять/потреблять/потреблять память на вашем компьютере?Используют анонимные методы памяти?
Если да, то они выделяют одну и ту же память для каждой переменной на захваченном блоке кода?
Do Anonymous Methods, Delegates, Action, Func и так же выделять/потреблять/потреблять память на вашем компьютере?Используют анонимные методы памяти?
Если да, то они выделяют одну и ту же память для каждой переменной на захваченном блоке кода?
Конечно, они действуют, как и любая другая нормальная функция. Как они могут быть выполнены во время выполнения, если они не будут «храниться» где-то в памяти?
Но если вы спрашиваете, потребляют ли они больше памяти на каждом вызове (как при распределении динамической памяти), то нет, они не делают этого самостоятельно.
Кажется, что в памяти будет какая-то поддержка в памяти.
Определение делегатов определяет новый класс. Поэтому для хранения информации о классе требуется также память (также во время выполнения).
Определение Func
или Action
с определенными родовыми типами определяет (скрывает от вас) новый класс во время выполнения. Таким образом, это также требует памяти.
Анонимные методы превращаются в обычный метод с именем таблеток компилятором и помещаются в частный класс. Затем, как и любой другой метод, для хранения кода, который должен быть выполнен, потребуется память во время выполнения. И класс потребует некоторой памяти, как и другие классы.