Programa C# para demostrar el ejemplo de una array de delegados

En C#, un delegado es un objeto que hace referencia a un método o es una variable de tipo de referencia que puede contener una referencia a los métodos. Los delegados son similares al puntero de función C/C++. También proporciona una forma de indicar qué método se llamará cuando se active un evento. Como sugiere el nombre, una array de delegados significa declarar una array de delegados en la array utilizando la siguiente sintaxis:

Sintaxis:

name[] object = new name[size];

Donde nombre es la array delegada y tamaño es el tamaño de la array delegada. También podemos pasar los métodos a una array de delegados a través de su índice.

name[0] = method1;
name[1] = method2;
-----------------
-----------------
name[n] = methodn;

Podemos llamar al delegado usando su nombre.

delegate_array();

Ahora crearemos tres métodos y crearemos una array de delegados para señalar los métodos y llamaremos a los métodos usando una array de delegados.

Acercarse:

1. Declare el delegado aquí Myrect() es el delegado.

delegate void Myrect(double len, double width);

2. Cree tres métodos normales denominados Área, Perímetro y Diagonal.

3. Cree una array de delegados de tamaño 3.

Myrect[] del = new Myrect[3];

4. Pase estos métodos a cada índice de array del delegado.

del[0] = Area;
del[1] = Perimeter;
del[2] = Diagonal;

5. Llame al delegado iterando la array dentro del bucle for.

for(int i = 0; i < 3; i++)
{
    del[i](len, width);
}

Ejemplo :

C#

// C# program to illustrate how to create
// an array of delegates.
using System;
  
// Creating delegates
delegate void Myrect(double len, double width);
  
class GFG{
  
// Finding Area of rectangle
static void Area(double len, double width)
{
    double res1 = len * width;
    Console.WriteLine("Area:" + res1);
}
  
// Finding perimeter of rectangle
static void Perimeter(double len, double width)
{
    double res2 = 2 * (len + width);
    Console.WriteLine("Perimeter:" + res2);
}
  
// Finding diagonal of rectangle
static void Diagonal(double len, double width)
{
    double res3 = Math.Sqrt(len * len + width * width);
    Console.WriteLine("Diagonal:" + res3);
}
  
// Driver code
static void Main()
{
    double len = 4, width = 5;
      
    // Create an array of delegates
    // with array size 3
    Myrect[] del = new Myrect[3];
  
    // Pass the methods to array index
    del[0] = Area;
    del[1] = Perimeter;
    del[2] = Diagonal;
  
    Console.WriteLine("Data:");
    for(int i = 0; i < 3; i++) 
    {
        del[i](len, width);
    }
}
}

Producción:

Data:
Area:20
Perimeter:18
Diagonal:6.40312423743285

Explicación : en el ejemplo anterior, creamos un delegado llamado «Myrect (doble len, doble ancho)» y toma dos parámetros. Ahora creamos una clase llamada «GFG» que contiene tres métodos llamados Área, Perímetro y Diagonal, y estos métodos toman dos argumentos llamados len (es decir, la longitud del rectángulo) y ancho (es decir, el ancho del rectángulo). En el método principal, creamos dos variables y las inicializamos con la longitud y el ancho del rectángulo (es decir, 4 y 5). Ahora creamos una array de delegados de tamaño 3 llamada «del» y pasamos estos métodos a cada índice de array del delegado. es decir, del[0] = Área; del[1] = Perímetro; del[2] = Diagonal;. Muestre los datos llamando al delegado (es decir, del[i](len, ancho)) iterando la array dentro del bucle for (Aquí el bucle for itera tres veces).

Publicación traducida automáticamente

Artículo escrito por ojaswilavu8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *