📜  演示委托数组示例的 C# 程序

📅  最后修改于: 2022-05-13 01:55:40.636000             🧑  作者: Mango

演示委托数组示例的 C# 程序

在 C# 中,委托是引用方法的对象,或者是可以保存对方法的引用的引用类型变量。委托类似于 C/C++函数指针。它还提供了一种方法来告诉在触发事件时要调用哪个方法。顾名思义,委托数组意味着使用以下语法在数组中声明一个委托数组:

句法:

name[] object = new name[size];

其中 name 是委托数组,size 是委托数组大小。我们还可以通过其索引将方法传递给委托数组。

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

我们可以使用委托的名称来调用委托。

delegate_array();

现在我们将创建三个方法并创建一个委托数组来指向这些方法,然后我们使用一个委托数组调用方法。

方法:

1.这里声明委托 Myrect() 是委托。

delegate void Myrect(double len, double width);

2.创建三个法线方法,分别命名为 Area、Perimeter 和 Diagonal。

3.创建一个大小为 3 的代表数组。

Myrect[] del = new Myrect[3];

4.将这些方法传递给委托的每个数组索引。

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

5.调用在 for 循环中迭代数组的委托。

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

示例

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);
    }
}
}


输出:

Data:
Area:20
Perimeter:18
Diagonal:6.40312423743285

解释:在上面的例子中,我们创建了一个名为“Myrect(double len, double width)”的委托,它有两个参数。现在我们创建一个名为“GFG”的类,它包含三个名为 Area、Perimeter 和 Diagonal 的方法,这些方法接受两个参数,名为 len(即矩形的长度)和 width(即矩形的宽度)。在 main 方法中,我们创建了两个变量,并用矩形的长度和宽度(即 4 和 5)来初始化它们。现在我们创建一个名为“del”的大小为 3 的委托数组,并将这些方法传递给委托的每个数组索引。即,del[0] = 面积; del[1] = 周长; del[2] = 对角线;。通过调用delegate(即del[i](len, width))在for循环中迭代数组来显示数据(这里for循环迭代了3次)。