不与 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 一起使用