Co operator "= > " oznacza w właściwości w C#? [duplikat]

To pytanie ma już odpowiedź tutaj:

Co oznacza ten kod?

public bool property => method();
 34
Author: Daniel Cassidy, 2016-10-27

6 answers

Jest to właściwość złożona z wyrażeń , nowa składnia właściwości obliczeniowych wprowadzona w C# 6, która pozwala na tworzenie właściwości obliczeniowych w taki sam sposób, jak w przypadku wyrażenia lambda. Składnia ta jest równoważna

public bool property {
    get {
        return method();
    }
}

Podobna składnia działa również dla metod:

public int TwoTimes(int number) => 2 * number;
 47
Author: dasblinkenlight,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 10:41:52

To wyrażenie jest własnością. Zobacz na przykład MSDN . To tylko skrót od

public bool property
{
    get
    {
        return method();
    }
}

Możliwe są również funkcje wyrażenia:

public override string ToString() => string.Format("{0}, {1}", First, Second);
 10
Author: stop-cran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-29 17:03:38

Jak niektórzy wspominali, jest to nowa funkcja wprowadzona najpierw do C # 6, rozszerzyli jej użycie w C# 7.0 aby używać jej z getterami i seterami, możesz również użyć składni wyrażeń z metodami takimi jak:

static bool TheUgly(int a, int b)
{
    if (a > b)
        return true;
    else
        return false;
}
static bool TheNormal(int a, int b)
{
    return a > b;
}
static bool TheShort(int a, int b) => a > b; //beautiful, isn't it?
 8
Author: mshwf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-23 07:39:23

=> używany w własności jest expression body. Zasadniczo krótszy i czystszy sposób na napisanie nieruchomości tylko getter.

public bool MyProperty {
     get{
         return myMethod();
     }
}

Jest tłumaczone na

public bool MyProperty => myMethod();

Jest o wiele prostszy i czytelniejszy, ale możesz używać tylko tego operatora z C # 6 i tutaj znajdziesz szczegółową dokumentację dotyczącą ciała wyrażenia.

 5
Author: Tinwor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 12:40:51

To wyrażenie jest uproszczone.

public string Text =>
  $"{TimeStamp}: {Process} - {Config} ({User})";

Reference; https://msdn.microsoft.com/en-us/magazine/dn802602.aspx

 3
Author: Nadeem Khoury,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 15:23:02

Jest to właściwość wyrażeniowa. Może być stosowany jako uproszczenie z getterów Właściwości lub deklaracji metody. Od C # 7 został również rozszerzony na inne typy elementów, takie jak konstruktory, finalizery, ustawiacze właściwości i indeksery.

Sprawdź dokumentację MSDN, Aby uzyskać więcej informacji.

" definicje ciała wyrażeń pozwalają dostarczyć implementację członka w bardzo zwięzłej, czytelnej formie. Można użyć definicji ciała wyrażenia, gdy Logika dla dowolnego wspierany element, taki jak Metoda lub właściwość, składa się z pojedynczego wyrażenia."

 -5
Author: Sérgio Azevedo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-24 13:39:37