Причина, по которой было Has
и Have
, заключалась в том, чтобы обеспечить свободный синтаксис в двух разных случаях.
Например, Has
имеет смысл в этом случае:
Builder<User>.CreateListOfSize(100)
.WhereTheFirst(1)
.Has(x => x.FirstName = "Jon Skeet")
.Build();
Хотя в этом случае имеет смысл Have
:
Builder<User>.CreateListOfSize(100)
.WhereAll()
.Have(x => x.FirstName = "Jon Skeet")
.Build();
Однако недавно было признано, что синтаксис необходимо очистить, чтобы избежать путаницы из-за различий в синтаксисе при создании списков по сравнению сотдельные объекты.
Так что теперь вы можете делать следующее:
Builder<User>.CreateListOfSize(100)
.All()
.With(x => x.FirstName = "Jon")
.TheFirst(1)
.With(x => x.LastName = "Skeet")
.Build();
... надеюсь, это будет менее запутанным в будущем.
также вы заметитев ответе ClosureCowboy о том, что расширения Has
и Have
уже были помечены как устаревшие, когда он ответил ...