본 내용은 "델파이 프로그래밍 언어" 도서의 일부분을 정리한 것입니다. 보다 자세한 내용은 해당 도서를 통해 확인할 수 있습니다.

 "델파이 프로그래밍 언어"(342쪽, 구입안내): http://tech.devgear.co.kr/devgearbook/2431 


 그 외 데브기어 도서들은 다음 링크를 통해서 확인할 수 있습니다: www.devgear.co.kr/book


익명 메소드의 사용


익명 메소드는 다음의 예와 같이 일반적으로 어떤 것에 대입됩니다.

anonymous_2_1.png

익명 메소드는 또한 함수에 의해 리턴되거나 메소드를 호출할 때 파라미터 값으로 전달될 수도 있습니다. 예를 들어, 아래는 바로 위에서 정의한 익명 메소드 변수 myFunc를 사용하 는 코드입니다.

anonymous_2_2.png

익명 메소드 뿐만 아니라 메소드 참조도 메소드 변수에 대입될 수 있습니다. 예를 들면 다음 과 같습니다.

anonymous_2_3.png 

하지만, 그 반대는 되지 않습니다. 익명 메소드를 일반 메소드 포인터에 대입할 수는 없습니 다. 메소드 참조는 매니지드 타입이지만 메소드 포인터는 언매니지드 타입입니다. 따라서 타입 안전성의 이유로 메소드 참조를 메소드 포인터로 대입하는 것은 지원되지 않습니다. 예를 들어, 이벤트는 메소드 포인터 값 속성이므로, 익명 메소드를 이벤트로 사용할 수 없습 니다. 이 제한에 대한 더 자세한 정보를 찾아보려면“익명 메소드 변수의 바인딩”절을 참고 하십시오.


익명 메소드 변수의 바인딩


익명 메소드의 핵심 기능은 익명 메소드가 정의된 위치에서 보이는(visible) 변수들을 참조할 수 있다는 것입니다. 더욱이, 이들 변수들은 익명 메소드에 대한 참조에 바인드(bind)되고 구 속됩니다. 따라서 익명 메소드는 상태를 캡쳐(capture)하고 변수의 수명을 연장하게 됩니다.


변수의 바인딩

위에서 선언했던 함수를 다시 살펴봅시다. 

anonymous_2_4.png

anonymous_2_5.png

변수 값이 연결(bind)된 함수의 이 인스턴스를 생성할 수 있습니다.

anonymous_2_6.png 

adder 변수는 익명 메소드의 코드 블록에서 참조된 변수 y에 값 20이 연결(bind)된 익명 메소드를 가지고 있습니다. 이 연결(bind)은 그 값이 유효범위 바깥으로 나가더라도 계속 유지됩니다.   

 


번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15414
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13960
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16496
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23267
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18921
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39245
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174696
643 [베를린 U1] 윈도우 태스크바 알림의 뱃지를 제어할 수 있습니다. 험프리 2016.09.20 680
642 [업데이트][10.1 베를린] RAD Studio 10.1 베를린 서브스크립션 업데이트 1 [5] file 험프리 2016.09.19 1220
641 윈도우 10 Anniversary 업데이트와 RAD Studio file 관리자 2016.09.09 838
640 RAD 스튜디오(델파이, C++빌더) 웹개발 방법(WebBroker, IntraWeb) 험프리 2016.09.07 1829
639 TeeChart 컴포넌트를 통해 다양한 차트 및 그래프로 데이터를 출력할 수 있습니다. file 험프리 2016.08.30 5232
638 [발표자료] 20160830 나만의 C++애플리케이션 완성하기 with C++빌더 험프리 2016.08.26 1917
637 이 달의 기술자료 - 2016년 09월 file 험프리 2016.08.25 590
636 [마이그레이션 사례] 감리교신학대학교 험프리 2016.08.25 1436
635 인터베이스(Interbase) 에디션 안내 file 험프리 2016.08.25 1380
634 [로드맵] RAD 스튜디오 로드맵(2016년 8월) file 험프리 2016.08.12 1982
633 FireDAC 성능 비교(BDE, dbGO(ADO), dbExpress, FireDAC) 험프리 2016.08.09 1753
632 퀵레포트(Quick Report)에 사진 출력하기 험프리 2016.08.01 1864
631 BLOB 컬럼에 (이미지 등의)데이터 읽고 쓰기 험프리 2016.08.01 6093
630 퀵레포트 보고서 엑셀로 내보내기(저장하기) [1] 험프리 2016.08.01 1661
629 이 달의 기술자료 - 2016년 08월 file 험프리 2016.07.28 464
628 [마이그레이션] 써드파티 컴포넌트 마이그레이션 방안 안내 험프리 2016.07.26 1436
627 1차 공개 중고생 강의용 앱 소스 및 메뉴얼입니다. file 쭈니아빠 2016.07.16 762
626 이 달의 기술자료 - 2016년 07월 file 험프리 2016.06.30 2038
625 [발표자료] 20160624 소개합니다, RAD서버 관리자 2016.06.27 724
624 [추가된 문법 정리] - 배열 상수 초기화:델파이 XE7 추가 관리자 2016.06.03 3320