Какие (если есть) локально определенные делегаты кэшируются между вызовами методов?C#

Место общения программистов C#
Anonymous
Какие (если есть) локально определенные делегаты кэшируются между вызовами методов?

Сообщение Anonymous »

Это было упомянуто в другом моем вопросе, и я подумал, что было бы полезно добавить это в запись. Какие из локально определенных делегатов в следующей программе кэшируются между вызовами метода Work, а не создаются каждый раз с нуля?

namespace Example
{
class Dummy
{
public int age;
}

class Program
{
private int field = 10;

static void Main(string[] args)
{
var p = new Program();

while (true)
{
p.Work();
}
}

void Work()
{
int local = 20;

Action a1 = () => Console.WriteLine(field);
Action a2 = () => Console.WriteLine(local);
Action a3 = () => Console.WriteLine(this.ToString());
Action a4 = () => Console.WriteLine(default(int));
Func dummyAgeMatch = (l, r) => l.age == r.age;

a1.Invoke();
a2.Invoke();
a3.Invoke();
a4.Invoke();
dummyAgeMatch.Invoke(new Dummy() { age = 1 }, new Dummy(){ age = 2 });
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/446 ... thod-calls

Вернуться в «C#»