В чем цель "() =>"

Я действительно не сталкивался с этим синтаксисом во время моих классов программирования в Uni раньше, и мне любопытно, что это значит.

Единственное, что мне пришлось выполнить, это:

  • Когда мне пришлось создать BackgroundWorker, который должен был быть добавлен в событие ProgressChanged

    Invoke((MethodInvoker)(() => updatePing((int) e.UserState)));

  • При изучении руководств по использованию инфраструктуры Caliburn.Micro MVVM

    NotifyOfPropertyChange(() => Count);

Я пробовал поиск вокруг того, что означает это обозначение, но специальные символы, которые он использует, похоже, запутываются с поиском google, и я понятия не имею, что он называется.

Ответ 1

=> является синтаксисом выражения лямбда.

() означает, что нет параметров - если бы были заданы параметры, и типы могли быть выведены из контекста, их можно было бы указать как-то вроде этого:

(x, y) => x + y

Или явно указывать типы

(int x, string y) => x + y.Length

Если имеется только один параметр и его тип, вы не нуждаетесь в скобках:

x => x.Length

Ответ 2

что лямбда-выражение без параметров.

То, что вы действительно делаете, передает в вашу функцию delegate (которая сортируется как переменная для методов)


() => Count представляет собой метод, похожий на следующий

type methodName()
{
    return Count;
}