zoukankan      html  css  js  c++  java
  • 匿名类型与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
  • 相关阅读:
    26个精选的JavaScript面试问题
    用js实现随机选取10–100之间的10个数字,存入一个数组,并排序
    小程序布局中class='container'的bug
    PHP接收数据数据包的几个方式
    LINUX命令
    VMware的下载安装
    php中Sessions
    php中Cookies
    php文件上传
    php文件处理
  • 原文地址:https://www.cnblogs.com/zwzw/p/2842356.html
Copyright © 2011-2022 走看看