Допустим, у меня есть следующее:
class A
{
T x;
Func<T> f;
A()
{
f = () => x;
}
void SetX(T blah)
{
x = blah;
}
}
Всегда ли верно, что f()
== x
.
то есть после вызова SetX(y)
правда, что f()
== x
== y
?
(Обратите внимание, если это отличается для значений по сравнению с ссылочными типами)
В более широком смысле, есть ли какая-то информация, которую я могучитать (или может быть помещен в ответ) о том, оцениваются ли лямбда-аргументы при создании лямбды или когда лямбда выполняется?Я мог бы просто протестировать эти случаи, но мне бы хотелось, чтобы материал для чтения был понятен, чтобы понять, как он работает, и у меня меньше шансов получить какие-либо будущие ошибки.