传递匿名函数时,我无法调用委托。
这是代码。
public class MethodCollection
{
public static void Print(Action<int, int> printNumbers)
{
}
}
public class Program
{
static void Main(string[] args)
{
MethodCollection.Print((p, q) => { p = q = 3; Console.WriteLine(p + q); });
Console.ReadLine();
}
}
输出为空白屏幕。 程序无法打印预期的输出,即6。
答案 0 :(得分:3)
或者可能是这样...我想您应该首先了解代表的基础知识
helpful link to learn basics of delegates
public class MethodCollection
{
public static void Print(Action<int, int> printNumbers)
{
printNumbers.Invoke(0,0);
}
}
public class Program
{
static void Main(string[] args)
{
MethodCollection.Print((p, q) => { Console.WriteLine((p=3) + (q=3)); });
Console.ReadLine();
}
}
答案 1 :(得分:0)
只需在您的Print方法中调用id
即可。
您应该在操作中删除printNumbers.Invoke(3,3);
,因为正如乔恩所说,这会使您的操作忽略您通过操作的数字。