NumberChanger 能和 TestDelegate 建立联系是因为 NumberChanger 是一个委托类型,可以存储指向符合其签名的任何方法的引用。在 TestDelegate 类中,AddNum 和 MultNum 两个方法的签名都符合 NumberChanger 委托类型的签名,因此可以通过创建委托实例并将这些方法作为参数来将它们与 NumberChanger 关联起来。

在 Main 方法中,通过 nc1 和 nc2 委托对象调用 AddNum 和 MultNum 方法,实现对 num 变量的修改,并通过调用 getNum 方法获取最终的 num 值。

示例代码:

using System;

delegate int NumberChanger(int n);
namespace DelegateAppl
{
   class TestDelegate
   {
      static int num = 10;
      public static int AddNum(int p)
      {
         num += p;
         return num;
      }

      public static int MultNum(int q)
      {
         num *= q;
         return num;
      }
      public static int getNum()
      {
         return num;
      }

      static void Main(string[] args)
      {
         // 创建委托实例
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);
         // 使用委托对象调用方法
         nc1(25);
         Console.WriteLine('Value of Num: {0}', getNum());
         nc2(5);
         Console.WriteLine('Value of Num: {0}', getNum());
         Console.ReadKey();
      }
   }
}

总结:

委托是 C# 中一种强大的机制,允许我们将方法作为参数传递。通过委托,我们可以将不同的方法与同一个委托类型关联起来,从而实现代码的灵活性和可重用性。

C# 委托:NumberChanger 和 TestDelegate 的关联解析

原文地址: https://www.cveoy.top/t/topic/odsD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录