• 【2018夏季达沃斯】未来就业报告发布:机器将比人更“能干” 哪些职位更“吃香”? 2018-09-19
  • 西安市民:本想买点香菜吃火锅?比较后还是买了些肉 2018-09-19
  • 安吉发布乡村治理标准规范 2018-09-19
  • 华北能源监管局开展电网运行风险管控专项督查 2018-09-18
  • 马来西亚新山依斯干达特区吸资2531亿马币 ——凤凰网房产马来西亚 2018-09-18
  • 繁星戏剧挑战浸没式独角戏 2018-09-18
  • 领导干部自然资源资产离任审计制度试点 让福建省光泽县绿意盎然(图)-地方新闻-时政频道-中工网 2018-09-08
  • 人民日报评留美生数落父母:为亲情拓对话空间 2018-09-07
  • 网友给四川省委书记、省长留言获回复 共计25条 2018-09-07
  • 娱乐城新优惠 2018-09-06
  • 无人售货架现身出租车内 乘客扫码付款随时取走零食 2018-09-06
  • 江西公布拖欠劳动报酬典型案例 最高拖欠近200万元 2018-09-06
  • 做学习宣传贯彻人民领袖思想的排头兵 2018-09-06
  • 华夏幸福荣获2018中国品牌先锋大奖之杰出企业奖 2018-09-05
  • 10大路口因礼让斑马线致堵 济南交警推新规约束行人 ——凤凰网房产济南 2018-09-05
  • 【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 已经有了基础想继续深入的人,这本书都很合适。