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.

questionAnswers(5)

yourAnswerToTheQuestion