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);
            };
        }
    }
    

      

    运行结果:

  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/gygtech/p/14011859.html
Copyright © 2011-2022 走看看