Давайте иметь такой код:Кэширование функции результата на C#
Function<int,int> someFunc=(x)=>{
//SomeCalc
return y;
}
, чем я хочу использовать функцию таким образом:
int result;
if(someFunc(k)!=0)
{
result=someFunc(k);
}
Вопрос заключается ли компилятор кэширует результат выполнения функции поэтому он будет рассчитан только один раз? Или он будет рассчитан два раза? Попробовал ответить Google, но не повезло.
А как насчет кеширования закрытий?
У меня нет верного ответа, но откуда я его вижу, результат не должен кэшироваться, поскольку он может быть изменен между двумя вызовами. Кроме того, я не думаю, что компилятор имеет к этому какое-то отношение, так как я вижу, что выполнение функций выполняется во время выполнения, а не компиляция ... –