#c_sharp #lambda
Надо в GetPersons как значение по-умолчанию передать функцию, всегда возвращающую true, хочется сделать лямбда-выражением. Что тут не так? public IEnumerableGetPersons(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
Нельзя так делать. Выход из ситуации - перегрузка без параметров.
Комментариев нет:
Отправить комментарий