Html Table의 Row 객체를 가져와 onmouseover 이벤트에 커서 모양과 배경색을 바꾸는 코드 입니다.
여기서 뽀나스~~~ C#에서 위임(delegate) 등록의 변천사(?)를 보시면
//기본 클래스 public class Common { public delegate bool IntFilter(int i); public static int[] FilterArrayOfInts(int[] ints, IntFilter filter) { //내부 구현.... } }
//C# 3.0 : Lambda Expression int[] oddNums3 = Common.FilterArrayOfInts(nums, i => ((i & 1) == 1)); foreach (int i in oddNums3) Console.WriteLine(i); }
여기서 C# 3.0에서 새롭게 나온 {람다 표현식(Lambda Expression)}은 2.0에서 {익명 함수(Anonymous Method)}와 완벽하게 호환 가능한 코드를 작성 할 수 있습니다. 버전이 올라 갈 수록 작성되는 코드의 양을 줄이고 가독성을 높일 수 있는 형태로 변화 되는 것을 볼 수 있습니다.
두 번째 {확장 메서드(Extension Methods)}
C# 3.0에서 새롭게 등장한 것으로
확장 메서드는 형식의 인스턴스 메서드인 것처럼 호출할 수 있도록 형식과 연결될 수 있는 정적 메서드입니다. 이 기능을 사용하면 실제로 기존 형식을 수정하지 않고도 기존 형식에 새 메서드를 "추가"할 수 있습니다.
라고 MSDN에 나와 있습니다. -.-;
여기서 뽀인트는 기존 형식을 추가하지 않고 새 메소드 추가 입니다. 말 그대로 기존 형식에 기능 확장이 가능한 것이죠.
그럼 역시 자바스크립트에서는?? 요놈도 있습니다. 바로 prototype 이란 것으로 가능합니다. 기존 자바스크립트의 내장형식에 기능을 확장하기를 원한다면 아래와 같이 작성을 합니다.
Number.prototype.toHexString = function() { return this.toString(16); }; function builtTest() { var a = 15; alert(a.toHexString()); }
Number 라는 자바스크립트 빌트인 타입에 toHexString 이란 메소드를 추가가 되었습니다.
웹 개발에 있어 요 몇 년은 Ajax의 관심은 대단 했었습니다. 그리고, Ajax의 개발적 기반 기술인 자바스크립트 또한 자바스크립트 재발견이라 할 정도로 OOP적 개발, 패턴 등에 대한 많은 논의가 있었습니다. 기존에 ctrl+C, ctrl+V 정도로면 여겨지던 것이 이제 프로그램 언어적으로 재사용성에 대해서, 좀더 효율적인 관리 및 개발에 대해 주목하고 있는게 아닌가 생각합니다. (긍정적인 변화라 할 수 있겠네요...) C#도 컴파일러 언어의 정적인(?) 면에서 스크립트언어 들의 유연함을 조금씩 닮아 가는 듯 합니다.
댓글 영역