У меня есть этот код:Как я могу сделать эту работу лямбдой?
String temp = txtForm.Rtf;
foreach (ReplaceStrut rs in replaceArray) {
temp = temp.Replace(rs.getNeedle(), rs.getReplacement());
}
if (this.InvokeRequired) {
this.Invoke(temp => txtForm.Rtf = temp);
} else {
txtForm.Rtf = temp;
}
Но это не будет компилироваться. Он жалуется на две вещи: «Невозможно преобразовать лямбда-выражение в тип« System.Delegate », потому что это не тип делегата» и «Локальная переменная с именем« temp »не может быть объявлена в этой области, потому что это придаст различие 'temp', который уже используется в области «родительский или текущий» для обозначения чего-то еще »
Обе ошибки находятся на линии лямбда. Как я могу сделать эту работу, что я делаю неправильно?
Никогда не видел синтаксис, используемый следующим образом: p Не уверен, нравится мне это или нет. – leppie
Синтаксис 'new Action (() => ...)' идентичен в терминах сгенерированного IL на '(Action) (() => ...)'. –