Как форматировать лямбда-выражения и анонимные методы для максимальной читабельности? - PullRequest
1 голос
/ 09 июня 2009

Например:

Sorter.SortBy ( array, ( a, b ) =>
{
    return a > b;
} );

Какой лучший способ отформатировать их для максимальной читабельности?

Также подумайте об этом для лямбда-версии с одним параметром и других случаев, которые могут использоваться часто.

Каковы рекомендации?

Ответы [ 5 ]

2 голосов
/ 09 июня 2009
Sorter.Filter(array, a => a.IsOK);

Sorter.SortBy(array, (a, b) => a > b);

Collection.Apply(array, (a)       => a * a, // i like lining things up
                        (x, y, z) => WhipIt(x, y) / z,
                        (a, b)    => a + b);

Evaluator.Confuse(array, (a, func) =>  // this is a big one, engage curly braces
{
    if(a.Flag) return 0;
    else
    {
        var x = func(a);
        if(x < 0) return -1;
        else return x * 2;
    }
});
1 голос
/ 10 июня 2009

При работе со сложными лямбдами (на мой взгляд, более чем одной строкой) я предпочитаю возвращаться к старомодным анонимным методам 2.0:

DoSomething (
делегат (int a, int b)
{
int c = a + b;
int d = / * бла-бла * /
возврат d;
});

Когда лямбда содержит более одной строки, мне нравится видеть типы параметров вместо просто (a, b). Но это только я.

1 голос
/ 09 июня 2009
Sorter.SortBy(array, (a, b) => a > b);
1 голос
/ 09 июня 2009

Почему фигурные скобки в вашем примере? Тебе не кажется, что это более читабельно? :

Sorter.SortBy ( array, (a,b) => (a > b) );

РЕДАКТИРОВАТЬ (в ответ на комментарии):

Если вашей лямбде требуются временные переменные или другие вещи, которые не могут быть выражены в одном выражении, вы должны использовать фигурные скобки и явный оператор возврата. Во всех (ну, в большинстве) других случаях их опускать удобнее, потому что это выглядит более интуитивно (для меня в любом случае).

0 голосов
/ 09 июня 2009

Вам будет трудно решить, какая стратегия форматирования является наилучшей, поскольку она обычно очень субъективна.

Вы могли бы взглянуть на то, как это делает ReSharper, поскольку он позволяет немного настроить форматирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...