В чем цель "() =>"
Я действительно не сталкивался с этим синтаксисом во время моих классов программирования в 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;
}