2016-04-18 14 views
6

Szukałem w czyimś biblioteki drugi dzień i mieli to:Co to jest operator =>, gdy nie jest używany z wyrażeniem lambda?

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

nie Czy => prostu zachowywać się jak cesji = operatora? Czy to nie byłoby to samo:

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

Nigdy tego nie widziałem.

+0

Jeden komentarz ... Masz rację, tak, że biblioteka jest kodowana, operator przypisania byłaby bardziej odpowiednia. JEDNAKŻE, jeśli właściwość musiała być dynamicznie obliczana w locie, nie można po prostu użyć operatora przypisania, np. * publiczny ciąg statyczny CurrentDateTimeAsString => DateTime.Now.ToString() * – Colin

+0

Dzięki. Próbowałem go znaleźć, ale nie wiedziałem, jak to nazwać, więc nic się nie pojawiło. – nhwilly

Odpowiedz

7

Jest to nowa funkcja C# 6,0 zwanego Ekspresja mocny jest cukier składniowym, która pozwala określić właściwości getter tylko i podziałowe którym korpus pochłaniacza jest przez ciała ekspresji.

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

jest taka sama jak:

public static string Invoices 
{ 
    get 
    { 
     return BaseUrl + "/invoices"; 
    } 
} 

Możesz przeczytać więcej here.

Ponadto można zdefiniować metody, jak również z tej składni:

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