Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET2中的操作委托-使用泛型类型';系统行动<;T>';需要';1';类型参数_C#_Delegates - Fatal编程技术网

C# .NET2中的操作委托-使用泛型类型';系统行动<;T>';需要';1';类型参数

C# .NET2中的操作委托-使用泛型类型';系统行动<;T>';需要';1';类型参数,c#,delegates,C#,Delegates,我正在将工作代码从.NET4移植到.NET2(一个WinCE设备) .NET2中不允许使用不带参数且不返回值的操作 下面第5行的编译错误:使用泛型类型“System.Action”需要“1”类型参数 变通思路 //first state is the default for the system public enum States { EnterVoucherCode, EnterTotalSale, ProcessVoucher }; public enum Events {

我正在将工作代码从.NET4移植到.NET2(一个WinCE设备)

.NET2中不允许使用不带参数且不返回值的操作

下面第5行的编译错误:使用泛型类型“System.Action”需要“1”类型参数

变通思路

//first state is the default for the system
    public enum States { EnterVoucherCode, EnterTotalSale, ProcessVoucher };
    public enum Events { PressNext, PressRedeem, ProcessSuccess, ProcessFail, PressBackToVoucherCode };

    public States State { get; set; }

    private Action[,] fsm; //Fails to compile here

    public FiniteStateMachine()
    {
        //array of action delegates
        fsm = new Action[3, 5] { 
        //PressNext,     PressRedeem,            ProcessSuccess,      ProcessFail,      PressBackToVoucherCode

实际上,在.NET3.5中添加了非通用的
操作

但是,
Action
只是一种普通的委托类型,因此您可以简单地使用自己的委托类型,如下所示:

public delegate void Action();