【发布时间】:2016-06-22 18:30:17
【问题描述】:
我是 C# 的新手,我已经学习了一个月了。有些代码让我头疼。您能否解释一下这是如何工作的,Util 类中的 void 方法如何更改 Test 类中的 int 数组? (http://msdn.microsoft.com/en-us/library/orm-9780596527570-03-04.aspx)
我不明白values[i] = t(values[1]) 行如何更改mainvalues[],即使它在没有参考或输出的情况下是无效的?如果可能,请为 C# 初学者解释一下。
感谢您的宝贵时间!
public delegate int Transformer (int x);
public class Util
{
public static void Transform (int[] values,Transformer t)
{
for (int i = 0; i < values.Length; i++)
values[i] = t(values[i]);
}
}
class Test
{
static void Main( )
{
int[] mainvalues = new int[] {1, 2, 3};
Util.Transform(mainvalues, Square); // dynamically hook in Square
foreach (int i in mainvalues)
Console.Write (i + " "); // 1 4 9
}
static int Square (int x) { return x * x; }
}
【问题讨论】:
-
我认为您对函数返回的内容以及作为参数的内容有点困惑......