Sono in grado di compilare il codice che include questo:C#; fare un nuovo delegato senza dichiarare il metodo separatamente?
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];
}
ma penso che il mio codice sarà più pulito se potevo fare qualcosa di più simile a questo:
OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={new OperatorDefinition("+",2,3,true, new OperationDelegate({return args[0]+args[1]}))};
delegate double OperationDelegate(double[] args);
perché voglio definire tutto su ogni OperatorDefinition in un singolo posto, piuttosto che definire le funzioni separatamente. C'è un modo per farlo in C#?
(qualsiasi altra critica circa il mio codice sarebbe il benvenuto, troppo)
provare espressioni lambda ... sono ordinate, pulite e concise. – explorer