• Intern Day70


    补充概念

    首先先补充几个概念

    1. 命名污染:两个库里的函数一样,就会出现重名,从而造成命名污染。

    2. 参数列表:看下面格式。函数定义的格式:

      返回值类型 函数名(参数列表)
      {
        声明 ……
        语句 ……
      }
      
    3. 方法签名:指的是返回值和参数。

    Lambda概念

    Lambda表达式是一个匿名函数(没有函数名的函数)

    特征:带 =>

    => 左边:Lambda表达式的参数列表;
    => 右边:Lambda表达式中需要执行的代码。

    Lambda用法一

    在目前项目学习中,Lambda最常见的用法就是和LINQ语法放在一起用,Lambda + LINQ 的作用就是对数据库进行增删改查操作(查更常见)。

    string[] words = { "bot", "apple", "apricot" };
    
    // 求words集合中开头为a的单词的最短长度
    int minLen = words
      .Where(w => w.StartsWith("a"))  
      .Min(w => w.Length);
    
    Console.WriteLine(minimalLength);   // 输出 5
    

    Lambda用法二

    没有任何参数的Lambda表达式:

    Func<string> greet = () => "Hello, World!";
    Console.WriteLine(greet());
    

    Lambda用法三

    设置只读属性:

    public class Location
    {
       private string locationName;
       public string Name => locationName;
    }
    
    上下这两块代码作用一样,设置Name属性为只读
    
    public class Location
    {
       private string locationName;
       public string Name
       {
          get => locationName;
       } 
    }
    

    Lambda用法四

    有点委托的意思

    Func<int, int, int> Add = (x, y) => x + y;
    Console.WriteLine(Add(2, 3)); // 输出5
    

    Lambda用法五

    using System;
    
    public class Person
    {
       public Person(string firstName, string lastName)
       {
          fname = firstName;
          lname = lastName;
       }
    
       private string fname;
       private string lname;
    
       public override string ToString() => $"{fname} - {lname}".Trim();
       public void DisplayName() => Console.WriteLine(ToString());
    }
    
    class Example
    {
       static void Main()
       {
          Person p = new Person("Mandy", "Bob");
          Console.WriteLine(p);
          p.DisplayName();
       }
    }
    ``
    
    输出:
    

    Mandy - Bob
    Mandy - Bob

    
    ##参考
    + 可以去看一下微软的官方文档
    
    + C#中Lambda表达式的用法、原因:<https://jingyan.baidu.com/article/9989c7466d3d6fb749ecfe2b.html>
  • 相关阅读:
    POCO库——Foundation组件之日期时间DateTime
    POCO库——Foundation组件之加解密Crypt
    POCO库——Foundation组件之缓存Cache
    POCO库——Foundation组件之核心Core
    POCO库——Foundation组件概述
    HP-SOCKET TCP/UDP通信框架库解析
    Notepad++ 使用nppexec插件配置简易开发环境
    Duilib源码分析(五)UI布局—Layout与各子控件
    Breakpad Google的crash捕获、抓取开源库
    Pugixml一种快速解析XML文件的开源解析库
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14710299.html
Copyright © 2020-2023  润新知