익명 메서드/대리자에서 문자열 값을 반환하려고합니다. 나는 이런 식으로 뭔가를 달성 할 수있는 방법 : 컴파일시 오류를 줄 것이다 이것을 참고 : 나는 또한 확장 메서드를 만들기 위해 노력하고 있어요 '익명 메서드/대리자에서 형식을 반환하는 방법
StringBuilder sb = new StringBuilder("aaa");
sb.Replace("aaa", delegate()
{
return "bbb";
});
대리자 형식이 아니기 때문에'문자열을 '입력 익명 메소드를 변환 할 수 없습니다 그래서 나는 다음과 같은 코드를 작성할 수 있습니다 :
StringBuilder sb = new StringBuilder("aaa");
sb.Replace("aaa",() =>
{
return "bbb";
});
확장 메소드의 서명은 무엇입니까?
편집 :
우리는 지루한 XML 파일을 생성하는 큰 내부 클래스가 있습니다. 우리는이 방법을 더 읽기 쉽도록 만들고 싶습니다. 그래서 우리는에서 을 가고 싶어 :
StringBuilder sb = new StringBuilder(_repository.GetGenericXml1Template());
sb.Replace("$Placeholder", GetXml1Helper());
private void string GetXml1Helper()
{
StringBuilder sb = new StringBuilder(_repository.GetGenericXml2Template());
sb.replace("$Var1", DB.Var1);
....
return sb.ToString();
}
그래서보다는 도우미 메서드 수십 약간 비슷한 일을하는 데 우리가 적어도 코드가 더 readble 만들고 싶어.
는 사람 :
StringBuilder sb = new StringBuilder(_repository.GetGenericXml1Template());
sb.Replace("$Placeholder",() =>
{
StringBuilder sb = new StringBuilder(_repository.GetGenericXml2Template());
sb.replace("$Var1", DB.Var1);
....
return sb.ToString();
}
);
서명은 Func이지만, 왜 그런 식으로하고 싶습니까? 나는 당신이 달성하고자하는 것이 무엇이든간에 더 나은 해결책이 있다고 확신합니다. –
Groo
@Wololo, 내 대답을 확인해 봤어 ... – RameshVel