经常听到别人说委托,见到(object sender, EventArgs e)。今天特别学习了一下,有错望不吝赐教。
主要引用这篇文章。http://www.cnblogs.com/wudiwushen/archive/2010/04/20/1703763.html。
首先说说委托。委托从形式上看是把对象当成参数使用,而对象本身就封装有属性、方法等,这样就可以间接的调用那个对象的一些操作了。
<span style="font-family:KaiTi_GB2312;font-size:18px;"> //定义一个委托
public delegate void buytickesEventHandler();
static void Main(string[] args)
{
buytickesEventHandler mydelete = new buytickesEventHandler(new yuangong().buyMoviceTickes);
mydelete +=new yuangong().buyCarTickes;
//委托附上方法
mydelete();
Console.ReadLine();
}</span>
但是,在一般情况下我们也可以通过实例化对象从而达到调用其方法,那这样委托不是加大工程量了吗?所以委托一般都用于处理一些特殊情况,这里有位大神给我举了个例子:导入EXcexl数据的例子,有一些方法封装在编译dll中供别人调用,但是如果你有新需求或者其他变动的话,dll开发者完全可以提供导入完成后的委托事件,把你自己需要执行的方法传给内部,让内部帮你执行你的方法。
另外找了个比较形象的例子:生活中,如果我们需要打官司,在法庭上是由律师为我们辩护的,然而律师真真执行的是当事人的陈词,这时候律师就是一个委托对象。我觉得用委托是因为一些方法不能直接调用。
另外委托被理解为“命令”,既然如此那必然至少得有命令的发布者和执行者了,发布者根据执行者的能力发出一些命令,以达到自己的目的。但是发布者又是怎么确定这些命令的内容呢?为什么要买电影票而不买车票呢?这里就需要用到事件了。