Стоит ли использовать метод цепочки в C #? - PullRequest
1 голос
/ 21 мая 2010

Имея инициализаторы Collection в C # и имея возможность определять свойства класса без необходимости вызывать конструктор , есть ли смысл использовать цепочку методов в C #? Я не вижу никого. Может я что-то здесь упускаю?

Спасибо

Ответы [ 3 ]

8 голосов
/ 21 мая 2010

LINQ?

var item = sequence.Where(x => x.Age > 100)
                   .Select(x => new { x.FirstName, x.LastName })
                   .OrderBy(x => x.LastName)
                   .FirstOrDefault();
6 голосов
/ 21 мая 2010

Широко используется плавные интерфейсы

РЕДАКТИРОВАТЬ: В ответ на вопросы в комментариях инициализаторы свойства / коллекции довольно ограничены в том, что вы можете только установить свойства или вызвать метод Add для коллекции, тогда как вызовы метода более гибкие, так как они могут принимать несколько аргументов.

Свободный интерфейс - это всего лишь одно конкретное использование цепочки методов для создания более удобочитаемого API, часто для создателей объектов.

Кроме того, поскольку статья MSDN вводит в заблуждение, поскольку инициализаторы объектов не позволяют обойти конструктор, просто в этом примере класс StudentName имеет конструктор по умолчанию, который ничего не делает.

4 голосов
/ 21 мая 2010

CuttingEdge.Conditions является хорошим примером того, почему метод цепочки удобен?

public void GetData(int? id)
{
    // Check all preconditions:
    Condition.Requires(id)
        .IsNotNull()
        .IsInRange(1, 999)
        .IsNotEqualTo(128);
}
...