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

Posted

技术标签:

【中文标题】不与 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 表达式一起使用时 => 运算符是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

当视图更新 Android Kotlin 时,DiffUtil 不与 ListAdpater 一起使用

Android Kotlin 不能将 list.sort() 与 lambda 一起使用

将 Func 委托与 Async 方法一起使用

与 lambda 和功能接口一起使用时无法理解下限

将 Entity Framework 4 中的 Include 与 lambda 表达式一起使用

“Try...Catch”块不与 parseInt() 一起使用