zoukankan      html  css  js  c++  java
  • C#中委托的发展与匿名函数

    匿名函数(C# 编程指南)

    匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。 可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。

    共有两种匿名函数,以下主题中分别讨论了这些函数:

    C# 中委托的发展

    下面的示例演示从 C# 1.0 到 C# 3.0 委托创建过程的发展:

    class Test
    {
        delegate void TestDelegate(string s);
        static void M(string s)
        {
            Console.WriteLine(s);
        }
    
        static void Main(string[] args)
        {
            // Original delegate syntax required 
            // initialization with a named method.
            TestDelegate testDelA = new TestDelegate(M);
    
            // C# 2.0: A delegate can be initialized with
            // inline code, called an "anonymous method." This
            // method takes a string as an input parameter.
            TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };
    
            // C# 3.0. A delegate can be initialized with
            // a lambda expression. The lambda also takes a string
            // as an input parameter (x). The type of x is inferred by the compiler.
            TestDelegate testDelC = (x) => { Console.WriteLine(x); };
    
            // Invoke the delegates.
            testDelA("Hello. My name is M and I write lines.");
            testDelB("That's nothing. I'm anonymous and ");
            testDelC("I'm a famous author.");
    
            // Keep console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
    /* Output:
        Hello. My name is M and I write lines.
        That's nothing. I'm anonymous and
        I'm a famous author.
        Press any key to exit.
     */

    .net3.5之后,大部分时候匿名方法可以被lambda替代。

    地址:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-methods

    搜索:匿名方法(C# 编程指南)

  • 相关阅读:
    基于MVC 的Quartz.Net组件实现的定时执行任务调度
    log4net 全局配置
    解决layui选中项下一页清空问题
    layui 子页面向父页面传值
    mvc session设置时间不起作用
    单个进程中最大线程数探索
    Linux CPU的中断【转载】
    Linux的CPU相关知识
    项目管理利器-Maven(Windows安装)
    Oracle的四种连接方式【转载】
  • 原文地址:https://www.cnblogs.com/Tpf386/p/9945373.html
Copyright © 2011-2022 走看看