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
  • 相关阅读:
    IO流操作-图片操作(二)
    SQL Server 大数据量批量插入
    XSS【跨站脚本攻击】
    Log4net配置
    发布网站碰到的问题
    操作百度API
    Html.BeginForm
    jquery自动识别输入的都是数字
    mysql中随机取出几条数据
    Html中截切文章内容,造成标签不全的问题
  • 原文地址:https://www.cnblogs.com/zwzw/p/2842356.html
Copyright © 2011-2022 走看看