C#委托-委托不关心被封装的类

本文介绍了C#中的委托概念,将其与C++中的函数指针进行了对比,并解释了委托如何封装对象实例方法或静态方法。通过具体示例展示了委托的声明、实例化及使用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

委托是C#中的一个全新的概念。类似于C++中的函数指针。但是,不像C++中的函数指针,委托是完全面向对象的; 不像指向成员函数的指针,委托封装一个对象的实例方法或静态方法。

一个委托声明定义一个从System.Delegate派生的类。一个委托实例封装一个或多个方法,每一个被称为可调用的实体。委托的最有用和感兴趣的是,它不知道或不关心,它所封装的方法的类。所以说,委托是"匿名"引用。

using System;
//委托声明
delegate void MyDelegate();
//实现委托的类,一个静态方法,一个实例方法
public class MyClass
{
public void InstanceMethod()
{
Console.WriteLine("实例方法被调用。");
}

static public void StaticMethod()
{
Console.WriteLine("静态方法被调用。");
}
}

//主要类,包括Main()函数
public class MainClass
{
static public void Main()
{
//一个委托类的实例
MyClass p = new MyClass();

//委托实例方法
MyDelegate d = new MyDelegate(p.InstanceMethod);
d();

//委托静态方法
d = new MyDelegate(MyClass.StaticMethod);
d();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值