• delegate的衍化过程 分类: .NET 2014-05-14 17:03 301人阅读 评论(0) 收藏


        class Program
        {
            delegate bool Foo(int n);
    
            static bool foo1(int n)
            {
                return true;
            }
    
            static bool foo2(int n)
            {
                return n % 2 == 0 ? true : false;
            }
    
    
            static bool foo3(int n)
            {
                return n % 2 != 0 ? true : false;
            }
    
    
            static void Main(string[] args)
            {
                Console.WriteLine(Sum(10, foo1));//10以内数相加
                Console.WriteLine(Sum(10, foo2));//10以内偶数相加
                Console.WriteLine(Sum(10, foo3));//10以内奇数相加
    
                Console.Read();
            }
    
            static int Sum(int n, Foo foo)
            {
                int sum = 0;
                for (int i = 0; i < n; i++)
                {
                    if (foo(i))
                    {
                        sum += i;
                    }
                }
                return sum;
            }
        }


        class Program
        {
            delegate bool Foo(int n);
    
            static void Main(string[] args)
            {
                Console.WriteLine(Sum(10, delegate(int a) { return true; }));      //10以内数相加
                Console.WriteLine(Sum(10, delegate(int a) { return a % 2 == 0; }));//10以内偶数相加
                Console.WriteLine(Sum(10, delegate(int a) { return a % 2 != 0; }));//10以内奇数相加
    
                Console.Read();
            }
    
            static int Sum(int n, Foo foo)
            {
                int sum = 0;
                for (int i = 0; i < n; i++)
                {
                    if (foo(i))
                    {
                        sum += i;
                    }
                }
                return sum;
            }
        }



        class Program
        {
            delegate bool Foo(int n);
    
    
            static void Main(string[] args)
            {
                //进化为更简洁的Lambda表达式来处理
                Console.WriteLine(Sum(10, (i) => true));      //10以内数相加
                Console.WriteLine(Sum(10, (i) => i % 2 == 0));//10以内偶数相加
                Console.WriteLine(Sum(10, (i) => i % 2 != 0));//10以内奇数相加
    
    
                Console.Read();
            }
    
    
            static int Sum(int n, Foo foo)
            {
                int sum = 0;
                for (int i = 0; i < n; i++)
                {
                    if (foo(i))
                    {
                        sum += i;
                    }
                }
                return sum;
            }
        }

    出处:http://bbs.csdn.net/topics/390784442

  • 相关阅读:
    Linux中的文件夹的增删改查命令和文件的增删改查命令
    xshell开源软件
    2020090808redis之linux的gcc的升级安装(八)
    2020090807redis之windows安装(七)
    2020090806redis之理解(六)
    2020090805redis之nosql的四大分类(五)
    每个牛逼的人都有一段苦逼的岁月,但是只要像SB一样坚持,终将牛逼
    2020090804redis之数据库的搭建(四)
    2020090803redis之大数据3V+3高(三)
    2020090802redis之非关系 数据库nosql(二)
  • 原文地址:https://www.cnblogs.com/configman/p/4657544.html
Copyright © 2020-2023  润新知