이 글은 주로 C# 익명 대리자 및 람다 표현식 관련 정보를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
익명 대리자(익명 메서드)를 사용하면 프로그래밍이 더욱 쉬워집니다. 위임 및 익명 위임에 대한 자세한 내용은 이전 블로그 "위임 및 익명 위임"을 참조하세요.
이전 예제에 이어 코드는 다음과 같습니다.
static void Main(string[] args) { Worker.TwoNumberHandleMethodDelegate method = delegate(int a, int b) { return a + b; }; Worker worker = new Worker(); int result = worker.HandleTwoNumber(10, 10,method); Console.WriteLine(String.Format("Result:{0}", result)); Console.ReadLine(); }
위의 프로그램 작업자는 Main에서 제공한 매개변수 및 계산 방법(method)에 따라 결과를 계산하고 반환합니다. 코드는 동등성을 기반으로 다음과 같이 더욱 단순화될 수 있습니다.
static void Main(string[] args) { Worker worker = new Worker(); int result = worker.HandleTwoNumber(10, 10, delegate (int a, int b) { return a + b; }); Console.WriteLine(String.Format("Result:{0}", result)); Console.ReadLine(); }
여기에서 js 및 jquery 개발 경험이 있는 친구는 갑자기 친근감을 느낄 수도 있습니다. 아... 익명 기능입니다. $("#id").click(function(){..........})은 jquery의 모든 곳에서 사용됩니다.
C#의 익명 대리자를 사용하면 더욱 단순화될 수 있으며, 더욱 단순화된 결과는 람다 표현식이라는 표현식이 됩니다.
static void Main(string[] args) { Worker.TwoNumberHandleMethodDelegate method = delegate(int a, int b) { return a + b; }; }
Lambda 표현식 표현식:
static void Main(string[] args) { Worker.TwoNumberHandleMethodDelegate method = (a, b)=> { return a + b; }; }
C# =>를 사용한 람다 표현식은 두 부분으로 나누어지며, (a, b)는 매개변수 목록, {....}는 메소드 본문입니다.
static void Main(string[] args) { Worker worker = new Worker(); int result = worker.HandleTwoNumber(10, 10, (a, b) => { return a + b; }); Console.WriteLine(String.Format("Result:{0}", result)); Console.ReadLine(); }
아래 메서드는 람다 식 변환과 비교됩니다.
private void A1() { Console.WriteLine("...."); } //Lambda ()=>{Console.WriteLine("....");}; //如果方法体代码只有一句,如上还可省去方法体大括号 ()=>Console.WriteLine("....");
private string A2(int a, int b) { return String.Format("{0}+{1}={2}", a, b, a + b); } //如上示例可简化为 (a,b)=>{return String.Format("{0}+{1}={2}", a, b, a + b);} //因为方法体只有一句,可进一步简化 (a,b)=> String.Format("{0}+{1}={2}", a, b, a + b); //此时注意return应该去掉,C#编译器自动识别=>做返回值
private string A3(int a) { return String.Format("{0}", a); } //上面示例可简化为 (a)=>String.Format("{0}", a); //如果参数列表只有一个参数,参数列表的()可以去掉,上面进一步简化为 a=>String.Format("{0}", a);
이 기사를 통해 여러분은 C#에서 메서드, 대리자, 익명 메서드, 람다 식을 사용한다는 사실을 깨달았을 것입니다. 명확한 경계가 없으며 경계 간에 유연하게 변환될 수 있습니다. 실제 개발에서는 위임, 이벤트 등 위임에 관한 지식 포인트가 많습니다. 시간이 허락한다면 커미션 심화에 관한 기사를 쓰고 싶습니다.
위 내용은 C#에서 익명 대리자 및 Lambda 표현식 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!