Вы можете выполнять анонимные функции в C # так же, как в JavaScript:
JavaScript:
var s = (function ()
{
return "Hello World!";
}());
C #:
var s = new Func<String>(() =>
{
return "Hello World!";
})();
... В JavaScript вы можете передавать функции, которые будут выполняться другими функциями. Более того; Вы можете передать параметры в функцию, которая будет выполнена:
var f = function (message) // function to be executed
{
alert(message);
};
function execute(f) // function executing another function
{
f("Hello World!"); // executing f; passing parameter ("message")
}
Возможен ли приведенный выше пример в C #?
Обновление
Вариант использования: я перебираю кучу баз данных, регистрирую конкретные сущности. Вместо того чтобы вызывать мою вторую функцию (F()
) внутри Log()
из Logger
, я бы хотел вызвать F()
вне класса.
... Что-то вроде:
public void F(String databaseName)
{
}
public class Logger
{
public void Log(Function f)
{
var databaseName = "";
f(databaseName);
}
}