相关疑难解决方法(0)

将值类型捕获到lambda时是否执行复制?

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();
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 是否在创建lambda时创建了someStruct的副本?
  2. 是Foo返回时创建的someStruct的副本?
  3. 我可以验证没有发生复制吗?在C++中,我将实现复制构造函数并从其中进行打印.

该标准的引文将不胜感激.任何相关的在线文章也是如此.

.net c# struct value-type

8
推荐指数
2
解决办法
1174
查看次数

标签 统计

.net ×1

c# ×1

struct ×1

value-type ×1