Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Métodos Anônimos em C#: Simplificando o Uso de Delegates

Discutimos que delegates são usados para referenciar quaisquer métodos que tenham a mesma assinatura do delegate. Em outras palavras, você pode chamar um método que pode ser referenciado por um delegate usando esse objeto delegate.

Métodos anônimos fornecem uma técnica para passar um bloco de código como parâmetro de delegate. Métodos anônimos são métodos sem nome, apenas o corpo.

Você não precisa especificar o tipo de retorno em um método anônimo; ele é inferido a partir da instrução return dentro do corpo do método.

Escrevendo um Método Anônimo

Métodos anônimos são declarados com a criação da instância do delegate, com a palavra-chave delegate. Por exemplo:

delegate void NumberChanger(int n); 
... 
NumberChanger nc = delegate(int x) { 
    Console.WriteLine("Método Anônimo: {0}", x); 
};

O bloco de código Console.WriteLine("Método Anônimo: {0}", x); é o corpo do método anônimo.

O delegate pode ser chamado tanto com métodos anônimos quanto com métodos nomeados da mesma forma, ou seja, passando os parâmetros do método para o objeto delegate.

Por exemplo:

nc(10);

Exemplo

O exemplo a seguir demonstra o conceito:

Demo ao Vivo
using System; 
delegate void NumberChanger(int n); 
namespace DelegateAppl { 
    class TestDelegate { 
        static int num = 10; 
        public static void AddNum(int p) { 
            num += p; 
            Console.WriteLine("Método Nomeado: {0}", num); 
        } 
        public static void MultNum(int q) { 
            num *= q; 
            Console.WriteLine("Método Nomeado: {0}", num); 
        } 
        public static int getNum() { 
            return num; 
        } 
        static void Main(string[] args) { 
            //cria instâncias do delegate usando método anônimo 
            NumberChanger nc = delegate(int x) { 
                Console.WriteLine("Método Anônimo: {0}", x); 
            }; 
            //chamando o delegate usando o método anônimo 
            nc(10); 
            //instanciando o delegate usando métodos nomeados 
            nc = new NumberChanger(AddNum); 
            //chamando o delegate usando métodos nomeados 
            nc(5); 
            //instanciando o delegate usando outro método nomeado 
            nc = new NumberChanger(MultNum); 
            //chamando o delegate usando métodos nomeados 
            nc(2); 
            Console.ReadKey(); 
        } 
    } 
}

Quando o código acima é compilado e executado, produz o seguinte resultado:

Método Anônimo: 10 
Método Nomeado: 15 
Método Nomeado: 30

Linguagem C

  1. Dominando Classes e Métodos Abstratos em C#: Guia Prático
  2. Entendendo Classes e Métodos Parciais em C#
  3. Dominando Classes e Métodos Sealed em C#: Quando Usar, Exemplos Claros e Segurança de Código
  4. Dominando Sobrecarga de Métodos em C#: Conceitos, Exemplos e Boas Práticas
  5. Funções Lambda em Python: Guia Prático para Funções Anônimas
  6. Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
  7. Java 8 Default Methods Explicados: Aprimorando Interfaces e Compatibilidade Reversa
  8. Métodos em C#: Definindo, Chamando e Usando Funções
  9. Entendendo Delegates em C#: Guia de Referências de Funções e Eventos
  10. Método 21 da EPA: Protocolo Abrangente de Detecção e Reparo de Vazamentos