c#中使用委托

对于委托的定义,我的理解就是封装一类型的方法,然后根据传递进的参数,由系统来进行选择调用。

 

申明:

delegate void voidOperation(uint x)

这申明了一个委托,与这个委托匹配的方法格式为:不返回任何结果,参数。

delegate int intOperation(int x,int y)

申明一个委托,与这个委托匹配的方法格式为:返回一个整数,需要传入两个整型的参数。

delegate bool boolOperation(object o1,object o2)

申明一个委托,与这个委托匹配的方法格式为:返回一个bool型参数,需要传入两个对象参数。

 

使用方法:

要使用委托,首先需要拥有一个与委托相匹配的方法,然后将方法传入委托,然后通过委托得到结果。

 

示列:

------类-------

class test1

{

       public int m;

       public int n;

 

       //比较大小

        public static bool CompareOver(test1 bt1, test1 bt2)
        {
            if ((bt1.m + bt1.n) >= (bt2.n + bt2.m))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

}

 

---------申明委托------------

 public delegate bool compareop(test1 o1, test1 o2);

 

---------使用委托------------

test1 t1 = new test1();

test2 t2 = new test2();

compareop cp = new compareop(test1.CompareOver)

bool label = cp(t1,t2);

 

--------说明--------------

首先test1类中有一个比较大小的静态方法,其方法与申明的委托一致(因此可以使用委托),

当实例化委托时将这个方法传入,也就是说委托cp具有了test1类中的比较的方法,

这时当你传入两个实列化的对象后,得出结果。

 

注意事项:

所以从上面可以看出,委托是将方法作为参数传入,然后可以通过传入参数得到结果。

比较常用的就是跨线程调用时用到委托,

还有就是当你不知道,到底传入什么参数,利用什么方法,来进行操作,你可以设计一个委托来封装一个标准的接口,然后对于想进行操作的类来说,他只要按照委托的格式设计一个方法就可以进行操作了。当然这个也可以用接口来实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值