delegate引用参数示例

委托对我来说一直是个没有掌握全的东西,它的使用方式多使用范围广,记得最初是在学习线程的时候接触的,再后来的学习中一直有个疑问,就是注册多个事件后传参如果走,如果是引用参数它又是如何处理。当然实际结果一般学过点的人都猜的到,但是终究是推测,没测试没使用过总是畏畏缩缩的,下面就是我的一个例子。

ps:因为广播的时候顺序是按照添加顺序广播的,每次广播都会修改原先的参数后才进行下个方法,做一就是下面这么个结果,如果需要的话可以把那个时间格式化下,或者每次sleep一秒钟,时间就不同了,换图片好麻烦的。。。。

ContractedBlock.gif ExpandedBlockStart.gif Code
    delegate void strFactory(ref string str);
    
class Program
    {
        
static void Main(string[] args)
        {
            strFactory fac 
= new strFactory(test);
            fac 
+= test;
            
string str="startTime:";
            fac 
+= test;
            fac(
ref str);
            Console.WriteLine(str);
        }
        
static void test(ref string str)
        {
            str 
+= string.Format("{0}\t", DateTime.Now.ToLocalTime().ToString ());
        }
    }

 结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值