zoukankan      html  css  js  c++  java
  • c#

    基础理论:

    匿名方法:通过匿名委托 、lamada表达式定义的函数具体操作并复制给委托类型;
    
    匿名委托:委托的一种简单化声明方式通过delegate关键字声明;
    
    内置泛型委托:系统已经内置的委托类型主要是不带返回值的Action<T1,,,,Tn>和带返回值的Func<T1,,,Tn,Tresult>
    

      

    实例代码:

    using System;
    
    namespace Gxy.Study
    {
        /// <summary>
        /// 代码版本SDK .NET Core 2.1
        /// </summary>
        class DemoTest
        {
            /// <summary>
            /// 定义函数单条语句直接用lamada表达式
            /// </summary>
            /// <param name="x"></param>
            public void Fun1(string x) => Console.WriteLine("输出参数:{0}", x);
    
            /// <summary>
            /// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量,并通过那lamada定义匿名函数
            /// </summary>
            public Action<string> Fun2 = x => Console.WriteLine("输出参数:{0}", x);
    
            /// <summary>
            /// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量,
            /// 并通过匿名委托定义匿名函数
            /// </summary>
            public Action<string> Fun3 = delegate (string s) {
                Console.WriteLine("输出参数:{0}", s);
            };
    
            /// <summary>
            /// 定义委托类型
            /// </summary>
            /// <param name="x"></param>
            /// <returns></returns>
            public delegate string Fun4(string x);
    
            /// <summary>
            /// 使用匿名函数声明委托
            /// </summary>
            public readonly Fun4 Fun5 = delegate (string x) {
                return "输出参数:" + x;
            };
    
            /// <summary>
            /// 使用内置泛型委托func(返回值不可以为void,参数列表中最后一个时返回值),
            /// 定义委托类型成员变量,并通过lamada定义单含带返回值的匿名函数
            /// 单行表达式的返回值就是此匿名函数的返回值
            /// </summary>
            public Func<int, string> Funcc = x => string.Format("输出参数:{0}", x);
    
            /// <summary>
            /// 使用内置泛型委托func(返回值不可以为void),定义委托类型成员变量,
            /// 并通过lamada定义多行代码的匿名函数
            /// </summary>
            public Func<int, int, string> Funccc = (x1, x2) => {
                Console.WriteLine("执行方法");
                return string.Format("输出参数:{0}", x1 + x2);
            };
        }
    }
    

      

    运行结果:

  • 相关阅读:
    Hello CnBlog
    boxshadow
    箭头函数
    Web存储机制
    闭包
    HTTP Cookie
    javascript执行环境和作用域链
    BFC
    iOS开发之创建颜色渐变视图View
    iOS之中国银联移动支付控件升级的问题
  • 原文地址:https://www.cnblogs.com/gygtech/p/14011859.html
Copyright © 2011-2022 走看看