补充概念
首先先补充几个概念
-
命名污染:两个库里的函数一样,就会出现重名,从而造成命名污染。
-
参数列表:看下面格式。函数定义的格式:
返回值类型 函数名(参数列表) { 声明 …… 语句 …… }
-
方法签名:指的是返回值和参数。
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>