C#上下文和OOP中的Lambda函数

Mih*_*tel 0 c# oop lambda

我是c#的初学者,并且非常有兴趣通过深入学习语言.最近使用Lambda函数来制作我的代码,但不知道它是如何工作的.

我通过编写硬代码来映射列表中的值.见下文:

var validRatings = new List<int> { 1, 2, 3, 4, 5 };
Run Code Online (Sandbox Code Playgroud)

使用Lambda并且它工作:

var validRatings = settings.grossAlphas.Select(ga => ga.fundRating).ToList();
Run Code Online (Sandbox Code Playgroud)

我理解Lambda函数是匿名的,但它们与常规函数有什么不同?它们如何适应C#中的OOP上下文?

Eri*_*ert 6

Lambda函数是匿名的,但它们与常规函数有什么不同?

"X和Y有何不同?" 一般来说,StackOverflow不是一个好问题.这里有一棵苹果树和一棵橡树; 他们有什么不同?很难说.

简而言之:

  • Lambdas可以转换为委托或表达式树.常规函数只能转换为代理.

  • Lambdas可以表达身体或声明身体.在C#6之前,常规函数只能是声明的.

  • Lambdas可以从上下文推断出它们的形式参数类型; 常规功能不能.

它们如何适应C#中的OOP环境?

他们没有.Lambdas是函数式编程的一个想法,而不是面向对象编程.OOP的基本思想是功能在逻辑上与数据连接; lambdas恰恰相反.Lambdas是关于函数与数据对象的分离.

如果这不能回答你的问题,那就问一个更明确的问题.你对"oop语境"是什么意思?