Я пытаюсь создать метод, который принимает различные методы (Func
s) в качестве параметра.
У меня есть небольшая проблема при определении аргументов Func
. Предположим, что мне нужно вызвать некоторые вещи, как это:Как я могу назвать аргументы Func <int,int,int> в методе на C#?
public static void SomeTestMethod(int number,string str)
{
Check(MethodOne(number,str));
}
И для проверки у меня есть это:
public static int Check(Func<int,string,int> method)
{
// some conditions
method(where should i get the arguments ?);
}
Теперь мой вопрос, как я должен установить необходимые аргументы? Я чувствую, что предоставляет отдельные аргументы для проверки, не изящно, так как мне нужно позвонить Check с сигнатурой i, указанной в TestMethod.
Я не хочу иметь
Check(MethodOne,arg1,arg2,etc));
Если это возможно, я должен предоставить эту подпись вместо:
Check(MethodOne(number,str));
Это * очень * неясно, что вы просите. Если это даже компилируется, то 'MethodOne' возвращает' Func '. Это действительно поможет, если вы предоставите короткую, но полную программу, демонстрирующую проблему, и объясните, чего вы пытаетесь достичь. –
Как мы должны знать? –
Просто обратите внимание, что 'Func' принимает только один параметр (int) и возвращает строку. Вы вызываете его так: 'var result = method (someInt);' - предположительно 'Check' должен затем рассуждать над' result' или возвращать его? –
StuartLC