我有一个IntList类的实现。我应该:使用匿名方法的功能来引用其封闭方法中的局部变量,并使用定义的“行为”方法来计算IntList元素的总和(无需自己编写任何循环)。到目前为止,这是我所做的,但是我怀疑这是正确的。任何建议和解释都会在这里帮助我
在这种情况下,我的匿名方法的封闭方法是什么?
public delegate bool IntPredicate(int x);
public delegate void IntAction(int x);
class IntList : List<int>
{
public IntList(params int[] elements) : base(elements)
{
}
public void Act(IntAction f)
{
foreach(int i in this)
{
f(i);
}
}
public IntList Filter(IntPredicate p)
{
IntList res = new IntList();
foreach (int i in this)
{
if (p(i))
{
res.Add(i);
}
}
return res;
}
}
class Program
{
static void Main(string[] args)
{
// code here
IntList xs = new IntList();
// adding numbers, could be random. whatever really. Here just 0..29
for(int i =0; i<30; i++)
{
xs.Add(i);
}
int total = 0;
xs.Act(delegate (int x)
{
total = total + x;
Console.WriteLine(total);
}
);
Console.ReadKey();
}
}
我认为这部分是“匿名方法”(因为它是内联定义的,并且没有方法名称):