C#-无法调用动作委托

时间:2018-09-27 09:16:00

标签: c# delegates

传递匿名函数时,我无法调用委托。

这是代码。

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。

2 个答案:

答案 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);,因为正如乔恩所说,这会使您的操作忽略您通过操作的数字。