반복적 인 코드를 사용하여 개체 목록 (모든 INamed 목록)에서 확인란 목록을 생성하는 제네릭 함수를 리팩토링하려고합니다.어떻게이 함수를 매개 변수로 델리게이트와 함께 호출 할 수 있습니까?
두 번째 매개 변수는 함수로 다시 호출 할 수 있지만 실제로이 메서드를 호출하는 방법을 알아낼 수없는 대리자입니다. 이 대리자를 사용하여 메서드를 호출하는 가장 좋은 방법은 무엇입니까?
if (has(item)) // This calls the delegate
호출 : 여기
public delegate bool HasHandler(INamed named);
(내가 Checkboxlist 함수를 호출 할 코드의 예를 찾고 있어요 것은) 당신은 지금하고있는
static public string CheckboxList(IQueryable<INamed> allItems, HasHandler has, string name)
{
StringBuilder b = new StringBuilder();
foreach (var item in allItems)
{
if (has(item))
{
b.Append("<input type='checkbox' class='checkboxes' name='" + name + "' value=" + item.Id + " checked />" + item.Name);
}
else
{
b.Append("<input type='checkbox' class='checkboxes' name='" + name + "' value=" + item.Id + " />" + item.Name);
}
}
return b.ToString();
}
가 오류를 받고 있습니까? –
제쳐두고, 이와 같은 방법으로 HTML을 빌드 할 때마다 더 좋은 방법이 있습니다. –
@Justin Morgan -이 예제에 대한 구체적인 제안 사항이 있습니까? – leora