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>
原文地址:https://www.cnblogs.com/OFSHK/p/14710299.html