也不关返回值的事,例如下例就可以改变各元素。关键是你要修改的是参数,还是参数的成员。修改参数是毫无意义的,因为那是值传递形成的原始值的副本。同样,参数是值类型的结构的话,修改其成员也没有意义,因为结构的成员也是堆栈上的副本。using System;class A { public int i=1; } class main { static void Main() { A[] arr = new A[] { new A(), new A(), new A(), new A() }; Array.ForEach<A>(arr, delegate(A a) { a.i = 2; }); } }
{
public int i=1;
}
class main
{
static void Main()
{
A[] arr = new A[] { new A(), new A(), new A(), new A() };
Array.ForEach<A>(arr, delegate(A a) { a.i = 2; });
}
}