Я получаю следующую ошибку: "Using generic type 'Func<TResult>' requires 1 type arguments". It occurs when I attempt to define a dictionary which maps strings to delegate functions.
Словарь выглядит так:
Dictionary<string, string> builtInFunctions = new Dictionary<string, Func<Expression, Dictionary<string, string>, Dictionary<string, Value>, Dictionary<string, Token>, Dictionary<string, Cube>, Result>>()
{
{"ToString", ToString}
};
Result ToString(
Expression expression,
Dictionary<string, string> env,
Dictionary<string, Value> store,
ref Dictionary<string, Token> tokenEnv,
ref Dictionary<string, Cube> cubeEnv
) {
// implemented ToString function
}
И в этой части кода возникает ошибка:
Func<Expression, Dictionary<string, string>, Dictionary<string, Value>, Dictionary<string, Token>, Dictionary<string, Cube>, Result>
И это все равно появляется, если я использую для этого разные более простые типы, например:
Func<int, int, int, int, int, int>
Может ли делегировать функции только 4 аргумента, или есть способ обойти это?