返回   cpper编程论坛 > Blog > cat
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

为这篇文章评分

.net 匿名delegate 可以修改的局部变量

发表于 2006-11-17 03:08 AM 作者: cat
代码:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication5
{
    class Program
    {
        public delegate string F(int i);
        static void Main(string[] args)
        {
            F f = null;
            f = NewMethod(f);
            f(20);
            Console.ReadLine();
        }

        private static F NewMethod(F f)
        {
            int a = 20;
            f = delegate(int i) { Console.WriteLine(a); a = 30; return i.ToString(); };
            Console.WriteLine(a);
            Exec(f);
            Console.WriteLine(a);
            a = 10;
            return f;
        }

        static void Exec(F f)
        {
            Console.WriteLine(f(10));
        }
    }
}
偶尔看到的,感觉比较好玩。
结果可以试试看,原理可以用reflector看
评论 0 Email文章
评论总数 0

评论

发表评论 发表评论
作者为 cat 的最新文章

所有时间均为格林尼治时间 +9。现在的时间是 01:09 PM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2008,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0