• 匿名类型与Lambda表达式


    匿名类型

    先上一个匿名类的例子吧:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace DelegateDemo2
    {
        class Program
        {
            static void Main(string[] args)
            {
                string mid = ",middle part";
    
                //匿名方法的应用,在3.0以后就是用lambda表达式来代替了匿名方法
                Func<string, string> anonDel = delegate(string param)
                {
                    param += mid;
                    param += "and this was added to the string.";
                    return param;
                };
                Console.WriteLine(anonDel("Start of string"));
                Console.ReadKey();
            }
        }
    }

    例子很简单,简单到大家一看就懂,但是我想提醒两点大家需要注意的地方:
    1:在匿名方法中不能使用跳转语句(break、goto或则continue)跳转到该匿名方法的外部,反之亦然:匿名方法外部的跳转语句不能跳到该匿名方法的内部。

    2:在匿名方法内部不能访问不安全的代码。另外,也不能访问在匿名方法外部使用的ref和out参数。但是可以使用在匿名发方法外部定义的其他变量。

    Lambda表达式

    在上面的代码中也说过可以用Lambda表达式替换到匿名类型,那么上面的代码用lambda表达式表示如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace DelegateDemo3
    {
        class Program
        {
            static void Main(string[] args)
            {
                string mid = ",middle part";
                //Lambda表达式
                Func<string, string> lambda = param =>
                    {
                        param += mid;
                        param += "and this was added to the string.";
                        return param;
                    };
                Console.WriteLine(lambda("Start of string"));
                Console.ReadKey();
            }
        }
    }

    Lambda表达式的语法比匿名方法更简单。
    Lambda运算符“=>”的左边是参数,右边是方法体(方法的实现代码)。

    对WPF感兴趣的朋友可以直接跟我联系
    我个人QQ:1791786556
    讨论QQ群:
    WPF学习交流:699150554
    WPF/UI 界面开发:527847154
    WPF控件编程:699191787
  • 相关阅读:
    机器人走方格问题
    一道数列的规律题(使用递归解决)
    反转单链表
    求一个二叉树的深度以及如何判断一个二叉树是一个平衡二叉树
    打印素数
    DAY28-mysql扩展与预处理-查出问题的关键
    DAY31
    jQuery很简单很基础的
    JavaScript中的事件委托及好处
    结合个人经历总结的前端入门方法
  • 原文地址:https://www.cnblogs.com/zwzw/p/2842356.html
Copyright © 2020-2023  润新知