Freigeben über


C# 2.0 에 새로 들어간 기능들 ..

이번에 발표되는 Visual Studio 2005 - Whidbey - 에는 새로운 기능들이 많이 들어가게 된다. 그중 하나가 .NET Framework 2.0 하고 C# 2.0이다.

처음 이곳에 와서 C# 2.0을 보고, 이게 뭐지 했다 ㅡ.ㅡ 흐.. 이미 많은 사람들이 잘 알고 있을꺼 같긴 하지만 - 이미 preview랑 beta로 많이 발표 되었으니까, 그래도 혹시 모르는 분을 위해 쓸까 한다.

우선 C# 2.0에 새로 들어 가는 기능은 1. generics 2. anonymous methods 3. iterators 4. partial types 이렇게 4가지다.

각각의 기능들이 제공하는 범위가 하도 넓어서 이번 포스트에 다 올리긴 뭐하고 일단 각각의 기능에 대한 간단한 요약을 이번에 올리고, 다음 포스트에서 하나씩 자세히 쓸까 한다.

  • Generics
    • 이건 간단히 말하면, C++의 template과 비슷한 기능이다. class, struct, interfaces, delegate, method를 정의할때 C++ 의 template 처럼 generic type parameter를 제공할수 있다. 다른 점은 단순히 템플릿만 제공하는게 아니라, 컴파일 타임과 런타임에 제공 되는 타입에 대한 제약 사항을 정의 할수 있어, type safe 하게 사용할수 있다. 또한 사용하기에 따라서 반복적인 명시적 타입 변환을 줄일수 있다.

  • Anonymous methods
    • 이건 java에서 처럼 함수를 in-line으로 정의 할수 있게 해 준다. 다른 점은 delegate value를 기대하는 곳에만 쓸수 있다는것이다. 또한 이 anonymous methods를 정의 하는 곳에서 볼수 있는 local variables과 parameters 도 함수 안에서 사용할수 있다.

  • Iterators
    • 전에는 Enumerator를 지원할 경우, 프로그램머가 명시적으로 어떻게 자료구조를 iterate 할지 정해 줘야 했다면, C# 2.0 에서는 yield를 이용하여 보다 쉽게 Enumerator를 구현 할수 있게 되었다.

  • Partial Types
    • 이건 말 그대로, 하나의 class, struct, interface를 여러 파일에 나눠서 정의 할수 있게 해준다. 가장 확연한 잇점은 하나의 클라스가 여러개의 다른 논리적 파트로 나눠줘 있을때 각각의 파트를 다른 파일에 정의 하는게 가능하다는 것이다. 쉬운 예는 VS 2005 에서 windows application을 만들때, 실제 디자인 코드와 로직 코드가 2개의 파일로 분리 되어 있는것이다.

오키 이렇게 4가지 새로운 기능이 C# 2.0에 들어 가게 된다.

* 이미 눈치 채셨을수도 있지만, 위의 새로운 기능을 위해 C# 2.0에는 몇개의 새로운 단어들이 정의 되어 있다. where, yield, partial이 그 단어 들인데, C# 2.0 언어를 디자인 할때, 기존 C# 1.0 과의 호환성을 위해 위의 3단어는 context에 따라 의미를 갖도록 정의 되어 있다. 따라서 적절한 context에 위의 단어가 쓰여 지지 않는한 위의 3단어는 아무런 의미를 갖지 않게 된다, 쉽게 말하면, 위의 3 단어를 일반 indentifier 처럼 쓸수 있다는 말이다.

오키 오늘은 여기 까지 수고