首页 > 其他分享 >委托+方法+lambda优雅用法

委托+方法+lambda优雅用法

时间:2022-11-01 14:44:35浏览次数:61  
标签:System 优雅 CheckNo func using orderNo 用法 public lambda

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp.DDUP
{
    public class DelegateDemo
    {
        public void Run()
        {
            string orderNo = "Abcde123";
            //1.利用方法委托可写成lambda表达式的形式
            var t = CheckNo(e => e.StartsWith("A"), orderNo);
            Console.WriteLine(t);
            //2.利用扩展方法写法,更优雅
            t = orderNo.CheckNo(e => e.Contains("123") && e.Length == 5);
            Console.WriteLine(t);
            //3.原始写法也优雅
            t = orderNo.StartsWith("A");
            Console.WriteLine(t);
        }
        /// <summary>
        /// 这种写法可以给定委托类型的参数,自定义判断规则
        /// </summary>
        /// <param name="func">委托</param>
        /// <param name="orderNo">字符串</param>
        /// <returns></returns>
        public bool CheckNo(Func<string, bool> func, string orderNo)
        {
            return func(orderNo);
        }
    }
    /// <summary>
    /// 扩展方法使写法更优雅
    /// </summary>
    public static class Extension
    {
        public static bool CheckNo(this string str, Func<string, bool> func)
        {
            return func(str);
        }
    }

}

 

标签:System,优雅,CheckNo,func,using,orderNo,用法,public,lambda
From: https://www.cnblogs.com/request/p/16847638.html

相关文章

  • C++(STL):26 ---关联式容器set用法
    set容器都会自行根据键的大小对存储的键值对进行排序,只不过set容器中各键值对的键key和值value是相等的,根据key排序,也就等价为根据value排序。另外,使用set容器......
  • 基本用法
    1.pom.xml<!--mybatisPlus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>2.3</version><......
  • node3_path.join和path.basename、path.extname用法
    constpath=require('path')//../会抵消一级路径constpathStr=path.join('/a','/b/c','../','./d','e')console.log(pathStr)//凡是涉及到路径拼接的问题,都要......
  • 注解用法详解——@SuppressWarnings
    作为一名有强迫症的程序员最见不得的事情之一就是程序里有警告出现,还有一大困扰就是在eclipseIDE中,起码前面有警告时会无法加入断点。一般来讲大多数警告是代码不规范或安......
  • Matlab神经网络函数newff()新旧用法差异
    在MatlabR2010a版中,如果要创建一个具有两个隐含层、且神经元数分别为5、3的前向BP网络,使用旧的语法可以这样写:        net1=newff(minmax(P),[53 1]);注意......
  • JavaScript中Array.from()方法的用法
    1.介绍作用:将一个伪数组对象或者可迭代的任意对象转换为一个真正的数组语法:Array.from(arrayLike[,mapFunction[,thisArg]])arrayLike:必传参数,指定需要转换为数......
  • java中的lambda表达式
    简介java的lambda表达式是一种简单的匿名函数,这个匿名函数中都是干货,参数列表,lambda表达式的符号->和逻辑代码lambda的表达式的形式如下//当只有一个参数时,可以省略小......
  • C#中的is和as的用法
    is运算符is在C#7.0之前,主要用于检验实例是否是指定的类型,格式:expristypeexpr是一个具有值的表达式,type是一个类型。从C#7.0开始,is表达式......
  • C#的switch的用法
    switch-case语句经常被认为是if-else语句的替代品,但是在众多程序语言中还是能见到switch的存在,这很大程度上是因为switch更实用,这一点在C#中更能提现。简单的语法......
  • C语言中使用 #pragma pack 和 __attribute(aligned(n)) 【非常有用的字节对齐用法说明
    更改c编译器的缺省字节对齐方式:在缺省情况下,c编译器为每一个变量或数据单元按其自然对界条件分配空间;一般地可以通过下面的两种方法来改变缺省的对界条件:方法一(体积对齐):......