쿼리 문자열 매개 변수를 사용하여 URL을 작성하는 클래스가 있습니다. 이 클래스에는 클래스 속성과 UrlNew()에서 작성된 전체 URL을 반환하는 Url() 메서드와 속성 중 하나의 값을 바꾸기위한 매개 변수로 조건자를 전달할 수있는 메서드가 있습니다. . 자, 두 개의 술어 인 두 개의 매개 변수를 사용하려면이 함수를 수정해야합니다. 어떻게해야합니까? 나는 술어의 목록으로 메소드의 매개 변수를 수정 시도했지만 아마 바로 뭔가를하고 있지 않다 :함수 매개 변수에 둘 이상의 술어를 사용합니까?
public static string Url() (Action<LGUrlBuilder> predicate)
{
var instance = new LGUrlBuilder();
if (predicate != null) predicate(instance);
return instance.BuildUrl();
}
내 NEW UrlNew() 메소드는 다음과 같습니다
내 OLD UrlNew() 메서드는이처럼 보였다 :
는public static string UrlNew(List<Action<LGUrlBuilder>> predicateList)
{
var instance = new LGUrlBuilder();
if (predicateList != null && predicateList.Count > 0)
{
foreach (Action<LGUrlBuilder> predicate in predicateList)
{
if (predicate != null) predicate(instance);
}
}
return instance.BuildUrl();
}
이 잘 컴파일하지만 난 ASPX에서 사용, 그것을 실행할 때 나에게이 오류 제공 :
CS1660: Cannot convert lambda expression to type 'System.Collections.Generic.List<System.Action<public_site.Library.LG.LGUrlBuilder>>' because it is not a delegate type
을
저는 C# 초보자이며 뭔가 잘못하고 있다고 확신합니다. 어떤 조언이 도움이 될 것입니다. 감사!
그냥 말 : 행동은 * 술어가 아니므로 매개 변수 이름을 더 적절한 것으로 변경하는 것이 좋습니다. – Groo