//для функции от одного аргумента
 public ExpressionNode(ExpressionNode <TKey, TArg> node, Func <TArg, TArg> func)
 {
     _execute = () => func(node.Execute());
 }
 //для функции от двух аргументов
 public ExpressionNode(ExpressionNode <TKey, TArg> nodeFirstArg, ExpressionNode <TKey, TArg> nodeSecondArg, Func <TArg, TArg, TArg> func)
 {
     _execute = () => func(nodeFirstArg.Execute(), nodeSecondArg.Execute());
 }
 public TArg Execute(IDictionary <TKey, TArg> values)
 {
     _values = values;
     return(_upperNode.Execute());
 }