Как передать функцию в качестве параметра c
Как передать функцию в качестве параметра в C#?
можно ли передать функцию в качестве параметра в C#? Я могу сделать это с помощью классов Func или Action, но это заставляет меня объявить всю сигнатуру функции сразу. Когда я пытаюсь использовать делегат, я получаю ошибку компиляции, говорящую, что он не может преобразовать группу методов в делегат.
8 ответов
Я думаю, что вы хотите:
преобразование группы методов, анонимного метода или лямбда-выражения в делегат требует, чтобы компилятор знал точный тип делегата. Однако вы можете потенциально использовать лямбда-выражения и захваченные переменные, чтобы сделать это проще:
это в основном задерживает вызов обычным способом, но путем обертывания фактического вызова Add в простом Action делегат.
если это не соответствует вашим требованиям, возможно, вы можете рассказать нам немного больше о чего ты на самом деле пытаешься достичь.
сначала у вас должен быть делегат
затем он приобретает следующий вид:
нет необходимости для любого вызова для вызова.
Как и в dbone, я не уверен, зачем вам нужен массив params []. Не могли бы Вы уточнить расширенное использование для params?
кроме того, мне придется исправить что-то в вашем вопросе, потому что это вызовет ошибку компиляции :p
пожалуйста, посмотрите на использование делегатов вот отличный пример
Почему вы используете отражение? будет ли когда-нибудь другое количество парамов? или вы знаете, что signture метода останется постоянным (также помните, что C# поддерживает ключевое слово params [])
посмотреть Серия Функционального Программирования по Justin Etheredge. Вы должны найти решение своей проблемы там.
Передача функции в качестве параметра
Может кто помочь объяснить следующую часть кода:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Передача класса в качестве параметра
Возможно ли передать класс в качестве параметра определённой функции что бы она на базе этого.
Передача методу объекта в качестве параметра
Уважаемые знатоки, как понимать Передача методу объекта в качестве параметра?? То есть передаются.
Передача произвольной коллекции в качестве параметра
Добрый вечер! Объясните, пожалуйста, как можно передать коллекцию, реализующую тот или иной.
Решение
Добавлено через 1 минуту
но подобное лучше проводить с разными делегатам на мой взгляд, нежели объединять все в одну кучу.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Передача разных конкретных типов перечисления в один метод в качестве параметра
Поскольку прямая лобовая передача типа перечисления в метод в качестве параметра невозможна (?), то.
Написать программу для функции, которая будет получать в качестве параметра объект одного из классов
Нужно написать программу для функции, которая будет получать в качестве параметра объект одного из.
Передача массива как параметра функции
Привет. Подскажите пожалуйста как передать массив в функцию не как ссылку, а просто новый массив.
Хранение и передача метода в качестве параметра
Здравствуйте. Заранее прошу извинить, что создал одну и ту же тему в двух ветках (в том числе и.
Как передать функцию в качестве параметра в C#?
можно ли передать функцию в качестве параметра в C#? Я могу сделать это с помощью классов Func или Action, но это заставляет меня объявлять всю сигнатуру функции сразу. Когда я пытаюсь использовать делегат, я получаю ошибку компиляции, говоря, что он не может преобразовать группу методов в делегат.
8 ответов:
преобразование группы методов, анонимного метода или лямбда-выражения в делегат требует, чтобы компилятор знал точный тип делегата. Однако вы можете потенциально использовать лямбда-выражения и захваченные переменные, чтобы сделать это проще:
это в основном задерживает вызов обычным способом, но путем обертывания фактического вызова в Add в простом Action делегат.
если это не соответствует вашим требованиям, возможно, вы можете рассказать нам немного больше о то, что вы действительно пытаетесь достичь.
сначала у вас должен быть делегат
затем он приобретает следующий вид:
нет необходимости для любого вызова для вызова.
как с бкость я не понимаю, зачем тебе параметры[] массив. Не могли бы Вы уточнить расширенное использование для параметров?
кроме того, мне придется исправить что-то в вашем вопросе, потому что это вызовет ошибку компиляции :p
пожалуйста, посмотрите на использование делегатов вот отличный пример
Почему вы используете отражение? будет ли когда-нибудь другое количество параметров? или вы знаете, что метод signture останется постоянным (также помните, что C# поддерживает ключевое слово params [])
посмотреть Серия Функционального Программирования по Justin Etheredge. Вы должны найти решение своей проблемы там.
что-то вроде это должно работать для вас:
Как передать функцию в качестве параметра в C?
Я хочу создать функцию, которая выполняет функцию, передаваемую параметром в наборе данных. Как передать функцию в качестве параметра в C?
5 ответов
декларация
прототип функции, которая принимает параметр функции, выглядит следующим образом:
здесь указано, что параметр f будет указателем на функцию, которая имеет void тип возврата и который принимает один
этот вопрос уже имеет ответ для определения указателей функций, однако они могут быть очень грязными, особенно если вы собираетесь передавать их вокруг своего приложения. Чтобы избежать этой неприятности, я бы рекомендовал вам ввести указатель функции в нечто более читаемое. Например.
объявляет функцию, которая возвращает void и не принимает никаких аргументов. Чтобы создать указатель функции на этот тип, теперь вы можете сделать:
для a функция, которая возвращает int и принимает символ, который вы бы сделали
и использовать его
есть библиотеки, которые могут помочь с превращением указателей функций в приятные читаемые типы. The повысить функцию библиотека велика и стоит усилий!
намного лучше, чем выше.
С C++11 вы можете использовать функциональная библиотека сделать это в сжатой и общей форме. Синтаксис, например,
я включил пример программы ниже:
Иногда, однако, удобнее использовать функцию шаблона:
передать адрес функции в качестве параметра другой функции как показано ниже
Также мы можем передать функцию как параметр, используя указатель на функцию
до указатель на функцию. Синтаксис немного громоздкий, но он действительно мощный, как только вы познакомитесь с ним.
Как передать функцию в качестве параметра в С#?
Можно ли передать функцию в качестве параметра в С#? Я могу сделать это, используя классы Func или Action, но это заставляет меня сразу объявить всю подпись функции. Когда я пытаюсь использовать Delegate, я получаю ошибку компиляции, говоря, что он не может преобразовать группу методов в делегат.
Я работаю над Axial, и я пытаюсь разрешить пользователям звонить в веб-службы. Для чего я хочу создать прокси-класс Visual Studio, а затем передать сгенерированную функцию. Подпись функции не имеет значения, поскольку сгенерированный код использует только имя функции. Однако я хотел бы передать функцию вместо имени по двум причинам: возможность использования прокси-ресурса Url и ошибка компилятора, если веб-служба не существует или обновлена в Visual Studio.
ОТВЕТЫ
Ответ 1
Я думаю, что вы хотите:
Ответ 2
Преобразование группы методов, анонимного метода или лямбда-выражения для делегата требует, чтобы компилятор знал точный тип делегата. Однако вы могли бы использовать лямбда-выражения и захваченные переменные, чтобы сделать это проще:
Если это не соответствует вашим требованиям, возможно, вы можете рассказать нам немного больше о том, чего вы действительно пытаетесь достичь.
Ответ 3
Сначала вы должны иметь делегат
тогда он становится:
Нет необходимости в вызове вызова.
Как и в dbone, я не уверен, зачем нужен массив params []. Не могли бы вы уточнить расширенное использование параметров?
Кроме того, мне придется исправить что-то в вашем вопросе, потому что это вызовет ошибку компиляции: p
Ответ 4
пожалуйста, взгляните на использование делегатов, вот отличный пример
почему вы используете рефлексию? будет ли когда-нибудь другое количество параметров? или вы знаете, что метод signture останется постоянным (также помните, что С# поддерживает ключевое слово params [])
Ответ 5
Посмотрите Серия функциональных программ от Justin Etheredge. Вы должны найти решение своей проблемы.
Ответ 6
Это очень простой пример для программиста, который уже знаком с функцией C/С++/VB.NET/Python)-style pass с помощью указателя /ref (с делегат С#):
Ответ 7
Скажите Если вам нужно передать метод как параметр, а также вам нужно уловить возвращаемое значение для дальнейшей обработки. Тогда приведенные выше примеры будут работать нормально. Но скажите, если вам нужно передать метод с типом возврата void, тогда вам нужно создать еще одну версию функции InvokeMethod. Посмотрите пример ниже.
Ответ 8
Что-то вроде этого должно работать для вас: