#c_sharp #lambda
Надо в GetPersons как значение по-умолчанию передать функцию, всегда возвращающую
true, хочется сделать лямбда-выражением. Что тут не так?
public IEnumerable GetPersons(Choise func = x => true)
{
foreach (var u in ManageUsers.GetUsers())
{
Person person = new Person();
person.ImportProperties(u);
if (func(person))
{
yield return person;
}
}
}
private delegate bool Choise(Person person);
Ответы
Ответ 1
Ещё вариант - использовать в качестве значения по умолчанию null: public IEnumerableGetPersons(Choise func = null) { foreach (var u in ManageUsers.GetUsers()) { Person person = new Person(); person.ImportProperties(u); if ((func ?? (x=>true))(person)) { yield return person; } } } Ответ 2
Нельзя так делать. Выход из ситуации - перегрузка без параметров.
Комментариев нет:
Отправить комментарий