이것은 람다 식을 사용하는 한 가지 방법 일뿐입니다. 당신은 람다 식 어디서나을 사용할 수 있습니다. 위임자를 사용할 수 있습니다. 이렇게하면 다음과 같은 작업을 수행 할 수 있습니다.
List<string> strings = new List<string>();
strings.Add("Good");
strings.Add("Morning")
strings.Add("Starshine");
strings.Add("The");
strings.Add("Earth");
strings.Add("says");
strings.Add("hello");
strings.Find(s => s == "hello");
이 코드는 목록에서 "hello"단어와 일치하는 항목을 검색합니다.
List<string> strings = new List<string>();
strings.Add("Good");
strings.Add("Morning")
strings.Add("Starshine");
strings.Add("The");
strings.Add("Earth");
strings.Add("says");
strings.Add("hello");
private static bool FindHello(String s)
{
return s == "hello";
}
strings.Find(FindHello);
편집 :이 작업을 수행하는 다른 방법은 실제로 다음과 같이 Find 메서드에 대리자를 전달하는 것입니다
는 C# 2.0에서는이이 익명 대리인이 구문을 사용하여 수행 할 수 있습니다 :
strings.Find(delegate(String s) { return s == "hello"; });
람다 (Lambda 's)는 구문을 상당히 정리했습니다.
클로저가 없으면 정적 메서드를 콜백으로 사용할 수 있지만 여전히 이러한 메서드를 의도 된 사용 범위를 넘어서는 범위에서 증가시키면서 특정 클래스에서 이러한 메서드를 정의해야합니다. –
FWIW, 익명의 대리인과 함께 폐쇄 할 수 있으므로 엄격하게 람다가 필요하지 않습니다.람다 (Lambda)는 익명의 대표자보다 읽기 쉽습니다. Linq를 사용하면 눈이 피가 날 것입니다. – Benjol