Что означает "=>"?
Простите меня, если это кричит новичок, но что означает =>
в С#? Я был на презентации на прошлой неделе, и этот оператор (я думаю) использовался в контексте ORM. Я не обращал внимания на специфику синтаксиса, пока не вернусь к своим заметкам.
Ответы
Ответ 1
В С# lambda operator написано "= > " (обычно произносится " переходит в", когда читается вслух). Это означает, что аргументы слева передаются в блок кода (лямбда-функция/анонимный делегат) справа.
Итак, если у вас есть Func или Action (или любой из их двоюродных братьев с большим количеством параметров типа), вы можете назначить им выражение лямбда, а не создавать экземпляр делегата или иметь отдельный метод для отложенной обработки:
//creates a Func that can be called later
Func<int,bool> f = i => i <= 10;
//calls the function with 12 substituted as the parameter
bool ret = f(12);
Ответ 2
Поскольку никто еще не упомянул об этом, в VB.NET вы должны использовать ключевое слово function вместо = > , например:
dim func = function() true
'or
dim func1 = function(x, y) x + y
dim result = func() ' result is True
dim result1 = func1(5, 2) ' result is 7
Ответ 3
Это сокращение для объявления lambda.
i => i++
(вроде) такой же, как и запись:
delegate(int i)
{
i++;
}
В контексте:
void DoSomething(Action<int> doSomething)
{
doSomething(1);
}
DoSomething(delegate(int i) { i++; });
//declares an anonymous method
//and passes it to DoSomething
который (вроде) такой же, как и запись:
void increment(int i)
{
i++;
}
Просто не указывая имени, он позволяет объявить функцию в строке, известную как "анонимная" функция.
Ответ 4
Когда говорят вслух, оператор лямбда (переходит на), который помогает определить анонимный делегат, который вы определяете в лямбда.
Обычное место, чтобы увидеть это с обработчиком событий. У вас часто будет событие типа загрузки страницы, которое обрабатывается лямбдой со следующим кодом:
this.Loaded += (o, e) => {
// code
}
Вы определили метод, обрабатывающий событие Loaded анонимно (у него нет имени), используя выражение лямбда. Он будет читать как "o, e переходит в... определение метода с помощью foo".
Ответ 5
Это "лямбда-оператор", и вы читаете его как "идет". Скажем, у вас было утверждение:
doSomething(x => x + " hi");
Вы можете заменить "= > " в своем уме следующим образом:
doSomething(delegate (string x) { return x + " hi" });
Как вы можете видеть, он предлагает чертову стенографию. Компилятор определяет тип переменной, которую вы передаете, и позволяет избавиться от сигнатуры функции и брекетинга для кода, в который вы передаете переменные подписи.
Ответ 6
Это лямбда-оператор, часть выражения лямбда.
Все лямбда-выражения используют лямбда operator = > , который считывается как "идет к". Левая сторона лямбды оператор задает ввод параметры (если есть) и правую сторону содержит выражение или утверждение блок. Лямбда-выражение x = > x * x читается "x переходит в x раз x".
Ответ 7
Синтаксис для объявления анонимной функции, известной в С#, как "выражение лямбда".
Например, (int p) => p * 2
представляет собой функцию, которая принимает целое число и умножает его на два.