C#委托使用

整了一上午终于搞清楚了C#是委托机制!
委托很像C++中的函数指针。
现在比如有2个控件。而现在控件1的想去获取控件2的一个方法(必须是公开的)。
控件1被控件2组合。public class 控件2{
private 控件1 对象;
}
从上面来说,控件2想获取控件1那是很简单的,因为控件2包含一个控件1对象。但是控件1想去获取控件2的数据则要用委托!

控件2:
这个时候控件2必须有一个public方法:
public void getData()
{};


控件1:
在C#中委托一般是和事件一起连用的。控件1的事件
//预定义委托
public event EventHandler getIncSideHandle;
//事件
private void btnQuery_Click(object sender, EventArgs e)
        {
            if (getIncSideHandle != null)
            {
                getIncSideHandle(sender, e);
            }
        }


现在控件1把自己的方法 getIncSideHandle定义成了预委托。为了能使得控件2的方法能在控件1中被调用。则需要把自己的方法委托给控件1》做法是在构造方法中
InitializeComponent();
this.incomeQueryCondition1.getIncSideHandle += new EventHandler(getData);
这就相当于控件2把自己的getData方法委托给了控件1的 getIncSideHandle  方法。
这个时候在控件1中 btnQuery_Click调用的 getIncSideHandle其实就是调用 getData()方法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值