Action который принимает разное кол-во аргументов

135
02 июля 2019, 18:40

Как мне можно присвоить Action'у методы (разные) с разным кол-вом параметров и при этом параметры разные.

Пример:

void f1(string s, int i) {Console.Write(s);}

и

double f2(double d, float f) {return d;}

Как в простой Action передать сначало первый метод, а потом второй?

Answer 1

По поводу заголовка....

покатит?

private Action<string, object[]> _sampleAction;
public void SampleMethod(string s, params object[] args)
{
  if(sampleAction!=null) _sampleAction(s,args);
}

А это? Не совсем екшн, но...)

public delegate void MyDelegate(IEnumerable<string> param1, string param2, int param3 = 1);

Не уверен с экшнами такой синтаксис прокатит или нет.

По поводу вопроса в самом вопросе: вообще не вкурил что ты хочешь получить. Но, надеюсь, заголовок построен правильно)

Answer 2

Если я правильно понял, то вы хотите этого:

var s="";
var i=0;
Action act=()=>f1(s,i);
var d=0d;
var f=0f;
float result;
Action act2=()=>result=f2(d,f);

Через замыкание в лямбду передают аргументы из метода, а потом выполняется какое-то действие.

READ ALSO
Как получить полное число перед знаком

Как получить полное число перед знаком

Мне нужно распарсить строкуОна может иметь один из вот таких видов:

125
Узнать куда было перенаправление

Узнать куда было перенаправление

Как можно узнать куда был перенаправлен запрос HttpClient если для запроса указывать только запрос заголовков?

154
Fatal error: Uncaught Error: Class &#39;application\core\view&#39; not found На хостинге

Fatal error: Uncaught Error: Class 'application\core\view' not found На хостинге

когда залил сайт на хостинг столкнулся с ошибкой

172
Изменение настроек JCE Editor

Изменение настроек JCE Editor

на сайте стоит модуль JCE Editor, проблема в том, когда в админке мы редактируем текст он выглядит нормально, например выделяем желтым, делаем...

146