Czy kopiowanie jest wykonywane podczas przechwytywania typu wartości w lambdzie?
struct SomeStruct
{
public int Num { get; set; }
}
class Program
{
static Action action;
static void Foo()
{
SomeStruct someStruct = new SomeStruct { Num = 5 };
action = () => Console.WriteLine(someStruct.Num);
}
static void Main()
{
Foo();
action.Invoke();
}
}
Czy kopia jakiegoś elementu jest tworzona podczas tworzenia lambda?Czy kopia niektóreStruct jest tworzona po zwróceniu Foo?Czy mogę sprawdzić, czy kopiowanie nie występuje? W C ++ zaimplementowałem konstruktor kopii i wypisałem z niego.Docenione zostaną cytaty ze standardu. Wszelkie istotne artykuły online.