ExpertiDict

C# · Intermediário · Inglês · Técnico

local function

/ˈloʊkəl ˈfʌŋkʃən/substantivo

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));   // 120

Exemplos

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

Veja também

Todos os termos de C#