委托对我来说一直是个没有掌握全的东西,它的使用方式多使用范围广,记得最初是在学习线程的时候接触的,再后来的学习中一直有个疑问,就是注册多个事件后传参如果走,如果是引用参数它又是如何处理。当然实际结果一般学过点的人都猜的到,但是终究是推测,没测试没使用过总是畏畏缩缩的,下面就是我的一个例子。
ps:因为广播的时候顺序是按照添加顺序广播的,每次广播都会修改原先的参数后才进行下个方法,做一就是下面这么个结果,如果需要的话可以把那个时间格式化下,或者每次sleep一秒钟,时间就不同了,换图片好麻烦的。。。。
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 ());
}
}
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 ());
}
}
结果: