【发布时间】:2016-12-03 07:36:53
【问题描述】:
我正在创建一个匿名方法并将其传递给稍后要调用的操作。我想将一些数字数据 (int) 传递到我的匿名方法中。为了按值传递数据,我需要创建副本吗?还是按值传递数据?
如果我必须创建副本,这就是我认为实现的样子:
private void CreateAction()
{
int bus = 4;
CustomObject[] data = new object[16];
int length = 1500;
this.doWorkLater = new Action(() =>
{
var busCopy = bus;
var dataCopy = data;
var lengthCopy = length;
this.WorkMethod(busCopy, dataCopy, lengthCopy);
});
}
这(上面的代码)是否需要按值获取length 和bus?
在这种情况下,CustomObject[] data(我创建的某个类)是通过引用传递还是通过值传递?
【问题讨论】:
-
捕获的是变量,而不是值。由于这些变量是方法的本地变量,因此您不需要复制它们,因为没有其他东西可以修改它们。
标签: c# anonymous-methods