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 - это функция, которая возвращает значение.
Если вы не хотите передавать какие-либо аргументы своему действию, вы можете использовать не универсальную версию.
В конце концов, это просто делегаты, так что вы также можете определить свой собственный делегат и вместо него передать его.