我能够编译包含这个的代码:
OperationDelegate myOpDelegate; static OperatorDefinition[] definitions ={ new OperatorDefinition("+",2,3,true,new OperationDelegate(OperationAdd)),}; delegate double OperationDelegate(double[] args); static double OperationAdd(double[] args) { return args[0] + args[1]; }
但我认为如果我能做更像这样的事情,我的代码看起来会更清晰:
OperationDelegate myOpDelegate; static OperatorDefinition[] definitions ={new OperatorDefinition("+",new OperationDelegate({return args[0]+args[1]}))}; delegate double OperationDelegate(double[] args);
因为我想在一个地方定义每个OperatorDefinition的所有内容,而不是单独定义这些函数.有没有办法在C#中做到这一点?
(对我的代码的任何其他批评也是受欢迎的)
解决方法
查看匿名方法…例如:
C# – Anonymous delegate