• 美好生活的价值追求和实现路径-社会关注-理论频道-中工网 2018-05-21
  • 保罗亲手为自己圆梦 火箭勇士双双会师西部决赛 2018-05-21
  • Floating production, storage and offloading vessel delivered in Qingdao 2018-05-20
  • 汽車定位跟蹤官員意圖敲詐 追蹤器該怎麼管 2018-05-20
  • 工作队精准发力助力贫困村“摘帽” 2018-05-20
  • 中消协发布榨汁机比较试验结果 2018-05-20
  • 游花海林芝,赏野生桃花 2018林芝桃花节29日开幕 2018-05-20
  • 19米99轻松卫冕 巩立姣:没突破20米有点可惜 2018-05-18
  • 海南省工商局出实招提高干部素质 强化工作作风 2018-05-18
  • 栾蕾英亮相TOP100时尚盛典 盛装亮相仙气十足 2018-05-18
  • 以合法形式掩盖非法目的的合同效力 2018-05-18
  • 4月解放领跑重卡行业 红岩保持增幅第一 2018-05-17
  • 不查“后来”,中国电影难有未来 2018-05-16
  • 欧盟公司与伊朗合作将遭美国制裁?德媒:欧美或渐行渐远 2018-05-16
  • 《青草的清香》:探索感官和情感的发展史 2018-05-16
  • 【c#教程】C# 匿名方法

    栏目: C# 发布于: 2014-11-26 12:37:19

    C# 匿名方法

    我们已经提到过,委托是用于引用与其具有相同标签的方法?;痪浠八?,您可以使用委托对象调用可由委托引用的方法。

    匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。

    在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。

    编写匿名方法的语法

    匿名方法是通过使用 delegate 关键字创建委托实例来声明的。例如:

    delegate void NumberChanger(int n);
    ...
    NumberChanger nc = delegate(int x)
    {
        Console.WriteLine("Anonymous Method: {0}", x);
    };
    
    

    代码块 Console.WriteLine("Anonymous Method: {0}", x); 是匿名方法的主体。

    委托可以通过匿名方法调用,也可以通过命名方法调用,即,通过向委托对象传递方法参数。

    例如:

    nc(10);
    

    实例

    下面的实例演示了匿名方法的概念:

    using System;
    
    delegate void NumberChanger(int n);
    namespace DelegateAppl
    {
        class TestDelegate
        {
            static int num = 10;
            public static void AddNum(int p)
            {
                num += p;
                Console.WriteLine("Named Method: {0}", num);
            }
    
            public static void MultNum(int q)
            {
                num *= q;
                Console.WriteLine("Named Method: {0}", num);
            }
            public static int getNum()
            {
                return num;
            }
    
            static void Main(string[] args)
            {
                // 使用匿名方法创建委托实例
                NumberChanger nc = delegate(int x)
                {
                   Console.WriteLine("Anonymous Method: {0}", x);
                };
                
                // 使用匿名方法调用委托
                nc(10);
    
                // 使用命名方法实例化委托
                nc =  new NumberChanger(AddNum);
                
                // 使用命名方法调用委托
                nc(5);
    
                // 使用另一个命名方法实例化委托
                nc =  new NumberChanger(MultNum);
                
                // 使用命名方法调用委托
                nc(2);
                Console.ReadKey();
            }
        }
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    Anonymous Method: 10
    Named Method: 15
    Named Method: 30
    

    本文转载自:w3cschool
    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:【c#教程】C# 匿名方法
    IT技术书籍推荐:
    PHP编程(第3版)
    PHP编程(第3版)
    凯文·塔特罗 (Kevin Tatroe) (作者), 彼得·麦金太尔 (Peter MacIntyre) (作者), 拉斯马斯·勒多夫 (Rasmus Lerdorf) (作者), 赵戈戈 (译者), 易国磐 (译者), 张鹏飞 (译者)
    这是一本可以让读者深入了解PHP 技术的书籍,作者用言简意赅的语言并结合了大量实例来解释每一个要素。本书涵盖了PHP 所有基本的要点,不管你是一个想从头开始学习PHP的人,还是对PHP 已经有了基础想继续深入的人,这本书都很合适。