C# · Intermediário · Inglês · Técnico
local function
Método declarado dentro de outro método e visível só ali; pode capturar variáveis locais e, com static, é impedido de capturá-las.
Onde usar
Útil para recursão auxiliar e para validar argumentos antes de um iterador ou método async, de modo que a exceção suba na hora. Evita a alocação de delegate que uma lambda teria.
Em código
int Fatorial(int n) {
return Aux(n, 1);
static int Aux(int k, int acc)
=> k <= 1 ? acc : Aux(k - 1, acc * k);
}
Console.WriteLine(Fatorial(5)); // 120Exemplos
Extract that loop into a local function.
Extraia esse laço para uma local function.
Make the local function static so it can't capture anything.
Deixe a local function static para ela não capturar nada.
Cuidado
Não use quando a função será reaproveitada por outros métodos: nesse caso, vire método privado da classe.
Sinônimos
função local