委托(匿名函数、Lambda表达式)

using System;
 
namespace ConsoleApp1
{
    /// <summary>
    /// 委托(匿名函数、Lambda表达式)
    /// </summary>
    class Program
    {
 
        //定义委托
        internal delegate void TestDelegate(string s);
        static void Main(string[] args)
        {
            Func<string> f1 = () => "Jeff";
            //var result= f1();
            
            //.net2.0时期的匿名函数写法
            Func<string> f2 = delegate () { return "Jeff2"; };
            //var result = f2.Invoke();
 
            //.net3.0以后的Lambda表达式写法
            //Func<Int32, string> f3 = (Int32 i) => i.ToString();
            Func<Int32, string> f3 = (i) => i.ToString();
            var result = f3(100);
 
            Func<Int32, string> f4 = delegate (Int32 i) { return i.ToString(); };
            //var result = f4(1000);
 
            //Console.WriteLine(result);
            //Console.ReadKey();
 
            //1.实例化委托
            TestDelegate testDelegate1 = new TestDelegate(ConsoleStr);
            testDelegate1("测试委托1");
 
            //2.匿名委托(.NET2.0 +)
            TestDelegate testDelegate2 = delegate (string s) { Console.WriteLine(s); };
            testDelegate2.Invoke("测试委托2");
 
            //3.Lambda表达式
            TestDelegate testDelegate3 = (s) => { Console.WriteLine(s); };
            testDelegate3("测试委托3"); 
        }
 
        static void ConsoleStr(string s)
        {
            Console.WriteLine(s);
        }
}
}

  

posted @   skybirdzw  阅读(142)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示