C# Создание вызываемого как PHP

В прошлом я много работал с PHP, и вы можете передавать через него код в качестве параметра, если я прав, он называется вызываемым.

Вот как это выглядело:

METHOD('Parameter', function() { 
echo "Hey!";
});

Это возможно в C#? Потому что я хотел бы сделать это. выполнить эту функцию в качестве параметра в методе.

2 ответа

Решение

Мой awnser, который я нашел быстро после публикации этого вопроса:

Использование:

TestMethod ("Lambda", () => {
  Console.WriteLine("Expression");
});

Метод:

public void TestMethod (string name, Action action) {
 if(name == "Lambda") {
   action.Invoke ();
 }
}

Если я правильно понимаю, вы хотите передать вызываемую функцию другому методу? Самый простой способ сделать это - использовать параметр Func или Action:

void MyMethod(Action<string> passedInFunc)
{
    passedInFunc("Hey");
}

А потом назовите это:

MyMethod(s => 
{
    Console.WriteLine(s);
});

Действие представляет функцию, которая не возвращает никакого значения, в то время как Func - это функция, которая возвращает значение.

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

В конце концов, это просто делегаты, так что вы также можете определить свой собственный делегат и вместо него передать его.

Другие вопросы по тегам