Вы делаете это сейчас:
if (has(item)) // This calls the delegate
Это вызывает делегат внутри метода.У вас правильный синтаксис, и он должен работать.
Что касается вызова CheckboxList
- похоже, вам нужно определить делегата.Это может быть любой метод, который принимает «INamed» в качестве аргумента и возвращает логическое значение.Например, если у вас было:
private bool myHandler(INamed named)
{
return true;
}
Вы можете вызвать это с помощью:
string result = CheckboxList(items, myHandler, "Foo");
В качестве альтернативы, вы можете передать здесь лямбду:
string result = CheckboxList(items, named => { return (named.Foo > 3); }, "Foo");