zoukankan      html  css  js  c++  java
  • 关于委托Lamda表达式等的一个小例子

    using System;
    using System.Drawing;

    public class Example
    {
        public static void Main()
        {
            // Create an array of five Point structures.
            Point[] points = { new Point(100, 200),
                new Point(150, 250), new Point(250, 375),
                new Point(275, 395), new Point(295, 450) };

            // To find the first Point structure for which X times Y
            // is greater than 100000, pass the array and a delegate
            // that represents the ProductGT10 method to the Shared
            // Find method of the Array class.
            //第一种写法
            Point first = Array.Find(points, new Predicate<Point>(Example.ProductGT10));
            //第二种写法
            Point first = Array.Find(points, p => { return p.X * p.Y > 100000; });
            //第三种写法
            Point first = Array.Find(points, p => p.X * p.Y > 100000);
            //第四种写法
            Point first = Array.Find(points, delegate(Point p) { return p.X * p.Y > 100000; });
            //第五种写法
            Point first = Array.Find(points, ProductGT10);

            // Note that you do not need to create the delegate
            // explicitly, or to specify the type parameter of the
            // generic method, because the C# compiler has enough
            // context to determine that information for you.

            // Display the first structure found.
            Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
           
            Console.Read();
        }

        // This method implements the test condition for the Find
        // method.
        private static bool ProductGT10(Point p)
        {
            if (p.X * p.Y > 100000)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

  • 相关阅读:
    使用tornado的gen模块改善程序性能
    分析Linux内核中进程的调度(时间片轮转)-《Linux内核分析》Week2作业
    博客园配置MarsEdit客户端
    分析一个C语言程序生成的汇编代码-《Linux内核分析》Week1作业
    微信支付的开发流程
    探究加法操作的原子性
    mac下mysql数据库的配置
    从range和xrange的性能对比到yield关键字(中)
    使用装饰器时带括号与不带括号的区别
    从range和xrange的性能对比到yield关键字(上)
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/2341016.html
Copyright © 2011-2022 走看看