Скрытые возможности C#?

лямбда-выражения и вывод типов недооценены. Lambdas может иметь несколько операторов и они удваиваются как совместимый объект делегата автоматически .cs-file (просто убедитесь, что сигнатура c#.net совпадает), как в:

Console.CancelKeyPress +=
    (sender, e) => {
        Console.WriteLine("CTRL+C detected!\n");
        e.Cancel = true;
    };

Обратите csharp внимание, что у меня нет .cs-file new CancellationEventHandler и мне не нужно указывать .cs-file типы sender и e, они выводятся из csharp события. Вот почему это менее hidden-features громоздко, чем написание c-sharp всего delegate (blah blah), которое также требует c#-language от вас указания типов параметров.

Лямбда-выражения не должны ничего возвращать и csharp вывод типов чрезвычайно эффективен hidden-features в таком контексте.

Кстати, вы .cs-file всегда можете вернуть Lambdas, которые делают Lambdas в c# смысле функционального программирования. Например, вот .cs-file лямбда, которая создает лямбду, обрабатывающую .cs-file событие Button.Click:

Func makeHandler =
    (dx, dy) => (sender, e) => {
        var btn = (Button) sender;
        btn.Top += dy;
        btn.Left += dx;
    };

btnUp.Click += makeHandler(0, -1);
btnDown.Click += makeHandler(0, 1);
btnLeft.Click += makeHandler(-1, 0);
btnRight.Click += makeHandler(1, 0);

Обратите c#-language внимание на цепочку: (dx, dy) => (sender, e) =>

Вот csharp почему я счастлив, что прошел c# курс функционального программирования csharp :-)

Помимо указателей в C, я c#-language думаю, это еще одна фундаментальная hidden-features вещь, которую вы должны изучить csharp :-)

c#

hidden-features

2022-08-28T04:09:40+00:00