• C# lambda表达式


    用三个类来展示委托和Lambda表达式的使用.

    1.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class LambdaTest
        {
    
            //来定义几个方法.让委托变量绑定
            public static void ShowName()
            {
                Console.WriteLine("姓名: Tony / 梦断难寻");
            }
    
            public static void ShowAge()
            {
                Console.WriteLine("年龄 : 19");
            }
    
            public static void ShowGender()
            {
                Console.WriteLine("性别 : 男");
            }
            
        }
    }

    2.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Control
        {
           //定义委托
            public delegate void MyDelegate();
            //定义委托变量
            private MyDelegate MyDega;
            //在Control类的构造函数中实例化MyDaga这个委托变量
            public Control()
            {
                MyDega += LambdaTest.ShowName;
                MyDega += LambdaTest.ShowAge;
                MyDega += LambdaTest.ShowGender;
            }
    
            public void Show()
            {
                
                MyDega();
            }
    
            //写一个Add方法,来动态更改委托变量里面的方法集合
            public void Add(MyDelegate Funtion)
            {
                MyDega += Funtion;
            }
        }
    }

    在下面的类中使用前面两个类.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    
    //我添加了一个新的类.在LambdaTest.cs文件中
    namespace ConsoleApplication1
    {
        class Program
        {
            public void Marriage()
            {
                Console.WriteLine("婚否:过了好多年的光棍节了");
            }
    
            public void Profession(string Str)  //给Lambda表达式用的方法
            {
                Console.WriteLine("职业:" + Str);
            }
    
            static void Main(string[] args)
            {
                //现在来实例Control类
                Control Cl = new Control();
                Cl.Show();
                Console.WriteLine("--------------------------------------------------");
                //动态的给Control类中的委托变量添加一个方法, 就添加下面的Marriage方法.
                Program Pg = new Program();
                Cl.Add(Pg.Marriage);
                Cl.Show();
                Console.WriteLine("--------------------------------------------------");
                // Lambda表达式来了.
                Cl.Add(() => { Pg.Profession("码农"); });
                Cl.Show();
                Console.WriteLine("--------------------------------------------------");
            }
    
          
        }
    }
    
    // Lambda表达式的格式是这样的 :  ()          =>            {};
                               //   ↓           ↓             ↓
                               // 方法参数    告诉编译器      方法体
                              //             这个是Lambda
                             //                表达式
    
    
    // 说白了. lambda表达式就是一个匿名的方法,没有名字的方法

     

  • 相关阅读:
    多项式A除以B (25分)
    numpy随笔
    numpy中文件读取操作np.loadtxt(),np.savetxt()的使用
    Plug It In
    C. Uncle Bogdan and Country Happiness
    获得系统版本号
    C# Winform无边框窗口拖动
    numericUpDown隐藏上下箭头
    C# FTP下载图片转为Base64
    C# 获取版本号
  • 原文地址:https://www.cnblogs.com/mdnx/p/2740048.html
Copyright © 2020-2023  润新知