//для функции от одного аргумента
 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 void Set(ExpressionNode <TKey, TArg> upperNode)
 {
     _upperNode = upperNode;
 }