【问题标题】: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()
  • 谢谢。试图找到它,但不知道该怎么称呼它,所以什么也没找到。

标签: c# lambda assignment-operator


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-04
    • 2011-01-26
    • 1970-01-01
    • 2014-10-06
    • 2016-06-14
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多