익명의 함수를 익명의 함수로 바꾸고 싶을 때까지 항상 익명의 함수가 강력한 함수라고 생각했습니다. 단 하나의 메서드 본문 만이이 함수를 호출해야하기 때문입니다. 일반의 예 : 익명 함수가 아닌 익명의 함수
public void Init(List<int> numbers, List<string> texts)
{
int n = GetFirst(numbers);
string t = GetFirst(texts);
}
private T GetFirst<T>(List<T> list)
{
return list[0];
}
이 원하는
는GenFunc<T, List<T>, T> getFirst = list => list[0];
사용 같은 것을 정의하는 것 대신 인스턴스 방법 GetFirst
의. Func
을 사용하는 것은 일반 매개 변수가 다른 의미를 가지기 때문에 불가능합니다. 따라서 I 대리자 (Func
의 "기본")
delegate T GetFirstDelegate<T>(List<T> list);
정의하지만 단지 일반적인 정의 매개 변수를 들면 인스턴스화 할
GetFirstDelegate<string> getFirst = list => list[0];
하지만 난 자리 제네릭 매개 변수에 원치 같이
GetFirstDelegate<T> getFirst = list => list[0];
이 날 익명 메소드라는 이름의 방법뿐만 mightly 아니라는 것을 생각하게한다 - 적어도 일반적인 사용의 관점에서 - 또는 AM 나는 무엇인가 놓친다?
, 대한 예를 들어, LINQ는 이미 IEnumer에'.First()'를 정의하고있다. able' –