Имеет ли C# параметры с неявным именем для синтаксиса Lambda, аналогичные Swift? - PullRequest
0 голосов
/ 26 января 2020

В Swift концепция замыканий тесно ассоциируется с лямбда-выражениями в C#. Используя пример, где есть функция foo() (Foo() в C# из-за различных стандартизированных правил именования), которая принимает лямбду / замыкание, которое имеет два параметра, вы можете написать их следующим образом ...

C#:

Foo( (a, b) => a + b );

Swift:

foo{ a, b in a + b };

Однако Swift также может неявно именовать эти переменные ...

foo{ $0 + $1 };

Обратите внимание, что там нет in в этом утверждении. Компилятор подтверждает, что если требуется два параметра, то вы должны иметь оба значения $0 и $1. Если бы было три параметра, это также потребовало бы $2.

Мне интересно, если C# имеет что-то похожее, где параметры неявно определены.

1 Ответ

1 голос
/ 09 марта 2020

В C# нет ничего похожего (по состоянию на C# 8).

...