C# 委托:NumberChanger 和 TestDelegate 的关联解析
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# 中一种强大的机制,允许我们将方法作为参数传递。通过委托,我们可以将不同的方法与同一个委托类型关联起来,从而实现代码的灵活性和可重用性。
原文地址: https://www.cveoy.top/t/topic/odsD 著作权归作者所有。请勿转载和采集!