Lambda表达式的主要用途是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda表达式的主要用途是啥?相关的知识,希望对你有一定的参考价值。

参考技术A 可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。

不与 lambda 表达式一起使用时 => 运算符是啥? [复制]

【中文标题】不与 lambda 表达式一起使用时 => 运算符是啥? [复制]【英文标题】:What is the => operator when not used with a lambda expression? [duplicate]不与 lambda 表达式一起使用时 => 运算符是什么? [复制] 【发布时间】:2016-08-10 20:17:30 【问题描述】:

前几天我在看某人的图书馆,他们有这个:

internal static string BaseUrl => "https://api.stripe.com/v1";
public static string Invoices => BaseUrl + "/invoices";

=> 不就像赋值 = 运算符一样吗?这不一样吗:

internal static string BaseUrl = "https://api.stripe.com/v1";
public static string Invoices = BaseUrl + "/invoices";

以前从未见过。

【问题讨论】:

一条评论...你是对的,库的编码方式,赋值运算符会更合适。但是,如果需要动态计算属性,则不能只使用赋值运算符,例如公共静态字符串 CurrentDateTimeAsString => DateTime.Now.ToString() 谢谢。试图找到它,但不知道该怎么称呼它,所以什么也没找到。 【参考方案1】:

这是 C# 6.0 中称为 Expression-Bodied 的新功能,是一种语法糖,允许定义 getter-only 属性和索引器,其中 getter 的主体是由表达式体给出。

public static string Invoices => BaseUrl + "/invoices";

等同于:

public static string Invoices

    get 
    
        return BaseUrl + "/invoices";
    

您可以阅读更多here。

您也可以使用以下语法定义方法:

public void PrintLine(string line) => Console.WriteLine(line);

【讨论】:

以上是关于Lambda表达式的主要用途是啥?的主要内容,如果未能解决你的问题,请参考以下文章

除了节省代码行之外,lambda 表达式还有其他用途吗?

C#中的Lambda表达式[重复]

C# 闭包中的 Lambda 表达式是啥?

C# 闭包中的 Lambda 表达式是啥?

_=> 这个下划线在 Lambda 表达式中是啥意思?

Lambda 表达式中的 SQL WHERE 等价物是啥?