嘿,我知道已经有很多问题包含了我需要的答案,但我很难在 Func/Action/Delegate/Lambda 之间进行筛选,作为一个 javascript 人员,这一切都感觉不必要的复杂。
我正在处理二维数组,并且想编写一个方法,该方法接受 int width、int height 以及要与每个 x/y 对调用的任何形式的内联代码。重点只是为了避免一遍又一遍地编写嵌套 for 循环带来的错误和时间。但我不确定要使用的内联代码的正确类型,或者它是什么样的。我已经尝试了很多组合,但无法成功。
我应该在该方法上使用什么签名,以及如何调用它?
最佳答案
我通常使用action作为类型参数,并在调用时使用lambda:
ForEachPair(5, 5, (x, y) =>
{
Console.Write(x + "," + y);
});
public void ForEachPair(int width, int height, Action<int, int> callback)
{
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
callback(i, j);
}
}
}
关于C# 传递内联代码时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226989/