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

C# - Métodos Anônimos


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

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

Você não precisa especificar o tipo de retorno em um método anônimo; ele é inferido 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 delegada, com um delegado palavra-chave. Por exemplo,
delegate void NumberChanger(int n);
...
NumberChanger nc = delegate(int x) {
   Console.WriteLine("Anonymous Method: {0}", x);
};

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

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

Por exemplo,
nc(10);

Exemplo


O exemplo a seguir demonstra o conceito -
Demonstração 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("Named Method: {0}", num);
      }
      public static void MultNum(int q) {
         num *= q;
         Console.WriteLine("Named Method: {0}", num);
      }
      public static int getNum() {
         return num;
      }
      static void Main(string[] args) {
         //create delegate instances using anonymous method
         NumberChanger nc = delegate(int x) {
            Console.WriteLine("Anonymous Method: {0}", x);
         };
         
         //calling the delegate using the anonymous method 
         nc(10);
         
         //instantiating the delegate using the named methods 
         nc =  new NumberChanger(AddNum);
         
         //calling the delegate using the named methods 
         nc(5);
         
         //instantiating the delegate using another named methods 
         nc =  new NumberChanger(MultNum);
         
         //calling the delegate using the named methods 
         nc(2);
         Console.ReadKey();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Anonymous Method: 10
Named Method: 15
Named Method: 30

Linguagem C

  1. Classe abstrata e método C#
  2. C# Classe Parcial e Método Parcial
  3. Classe e método selados em C#
  4. Sobrecarga do método C#
  5. Função anônima/Lambda do Python
  6. Classe anônima Java
  7. Java 8 - Métodos padrão
  8. C# - Métodos
  9. C# - Delegados
  10. O que é o Método 21 da EPA?