expr-body",&ldquo로 작성됩니다."/> expr-body",&ldquo로 작성됩니다.">

>백엔드 개발 >C#.Net 튜토리얼 >.net 3.5의 대리자 인스턴스 정보

.net 3.5의 대리자 인스턴스 정보

零下一度
零下一度원래의
2017-06-23 16:05:191540검색

 .net 3.5에는 Linq 및 람다 표현식이 도입되어 대리자 생성이 더욱 간단하고 우아해졌습니다.

.net 3.5 Delegate

람다 표현식이 도입된 후에는 익명 메서드를 사용할 필요가 없어 대리자를 만드는 방법이 더 간단하고 우아해졌습니다. 사실 람다 표현식을 먼저 도입하면 익명 메소드가 없을 겁니다.

Lambda 표현식은 C#에서 "arg-list => expr-body"로 작성됩니다. "=>" 기호의 왼쪽은 표현식의 매개변수 목록이고 오른쪽은 표현식 본문( 몸). 매개변수 목록에는 쉼표로 구분된 0개 이상의 매개변수가 포함될 수 있습니다.

 1 namespace DelegateDemo 2 { 3     //声明委托 4     public delegate void MyDel(string arg1, string arg2); 5  6     class Program 7     { 8         static void Main(string[] args) 9         {10             //.net 3.5中的委托11 12             //创建委托,使用lambda表达式代替匿名方法13             MyDel myDel = (string arg1, string arg2) =>14             {15                 Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));16             };17 18             //调用委托19             myDel("aaa", "bbb");20 21             Console.ReadKey();22         }23     }24 }

매개변수 유형 생략

컴파일러는 위임 선언에서 위임 매개변수의 유형을 알 수 있기 때문에(이 기능을 유형 추론이라고 함) 매개변수 유형을 생략할 수 있으므로 코드가 단순화됩니다. 다음과 같이.

1 //创建委托,使用lambda表达式代替匿名方法2 MyDel myDel = (arg1, arg2) =>3 {4     Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));5 };

참고: 매개변수가 하나만 있는 경우 매개변수 유형 주위의 괄호를 생략할 수도 있습니다.

문장을 사용하여 표현식 교체

람다 표현식에서는 표현식 본문이 명령문 또는 명령문 블록이 될 수 있으므로 표현식 본문에 명령문이 하나만 있는 경우 명령문 블록을 명령문으로 대체하여 단순화를 계속할 수 있습니다. 다음 코드:

1 //创建委托,使用lambda表达式代替匿名方法2 MyDel myDel = (arg1, arg2) => Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));

위 내용은 .net 3.5의 대리자 인스턴스 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.