Visual Studio 2005부터는 C# 언어가 버전 2.0으로 업데이트되었습니다. 이 버전에서는 다음과 같은 새로운 기능을 지원합니다.
- 제네릭
-
제네릭 형식이 언어에 추가되었으므로 프로그래머가 코드 재사용 수준을 높일 수 있고 컬렉션 클래스에 대한 성능을 향상시킬 수 있습니다. 제네릭 형식은 인자 수로만 서로 구별됩니다. 매개 변수를 특정 형식으로 지정할 수도 있습니다. 자세한 내용은 제네릭 형식 매개 변수를 참조하십시오.
- 반복기
-
반복기를 사용하면 foreach 루프에서 컬렉션 내용을 반복하는 방식을 더 쉽게 지정할 수 있습니다.
- Partial 클래스
-
부분 형식 정의를 사용하면 클래스 같은 단일 형식을 여러 파일로 분할할 수 있습니다. Visual Studio 디자이너에서는 이 기능을 사용하여 생성된 코드를 사용자 코드와 분리합니다.
- Nullable 형식
-
nullable 형식을 사용하면 정의되지 않은 값을 변수에 포함할 수 있습니다. 구체적인 값이 들어 있지 않은 요소를 포함할 수 있는 데이터베이스 및 기타 데이터 구조를 작업하는 경우에 nullable 형식이 유용합니다.
- 무명 메서드
-
이제 코드 블록을 매개 변수로 전달할 수 있습니다. 대리자가 필요한 모든 위치에서 새 메서드를 정의할 필요 없이 코드 블록을 대신 사용할 수 있습니다.
- 네임스페이스 별칭 한정자
-
네임스페이스 별칭 한정자(::)를 사용하면 네임스페이스 멤버에 대한 액세스를 더 세밀하게 제어할 수 있습니다. global :: 별칭을 통해 사용자 코드의 엔터티에 의해 숨겨질 수 있는 루트 네임스페이스에 액세스할 수 있습니다.
- 정적 클래스
-
정적 클래스를 사용하면 정적 메서드를 포함하는 인스턴스화할 수 없는 클래스를 안전하고 간편하게 선언할 수 있습니다. C# 버전 1.2에서는 클래스를 인스턴스화할 수 없도록 하려면 클래스 생성자를 전용으로 정의해야 했습니다.
- 외부 어셈블리 별칭
-
extern 키워드를 확장하여 사용하면 동일한 어셈블리에 들어 있는 동일한 구성 요소의 서로 다른 버전을 참조할 수 있습니다.
- 속성 접근자 액세스 가능성
-
이제 속성의 get 및 set 접근자에 대해 서로 다른 수준의 액세스 가능성을 정의할 수 있습니다.
- 대리자의 공변성(Covariance)과 반공변성(Contravariance)
-
대리자에 전달되는 메서드에서 반환 형식 및 매개 변수에 대한 융통성이 보다 커졌습니다.
- 방법: 대리자 선언, 인스턴스화 및 사용
-
메서드 그룹 변환을 통해 대리자 선언 구문을 간소화할 수 있습니다.
- 고정 크기 버퍼
-
이제 안전하지 않은 코드 블록에서 배열을 포함하는 고정 크기 구조체를 선언할 수 있습니다.
- Friend 어셈블리
-
어셈블리에서 public이 아닌 형식에 대한 액세스를 다른 어셈블리에 허용할 수 있습니다.
- 인라인 경고 제어
-
#pragma warning 지시문을 사용하면 특정 컴파일러 경고를 비활성화하거나 활성화할 수 있습니다.
- volatile
-
volatile 키워드를 IntPtr 및 UIntPtr에 적용할 수 있습니다.
이번 버전의 C# 컴파일러에는 다음과 같은 추가 및 변경 내용이 포함되어 있습니다.
- /errorreport 옵션
-
내부 컴파일러 오류를 인터넷을 통해 Microsoft에 보고하는 데 사용할 수 있습니다.
- /incremental 옵션
-
이 옵션은 제거되었습니다.
- /keycontainer 및 /keyfile 옵션
-
암호화 키 지정을 지원합니다.
- /langversion 옵션
-
언어의 특정 버전과의 호환성을 지정하는 데 사용할 수 있습니다.
- /linkresource 옵션
-
추가 옵션을 포함합니다.
- /moduleassemblyname 옵션
-
.netmodule 파일을 빌드하고 기존 어셈블리의 public이 아닌 형식에 액세스할 수 있습니다.
- /pdb 옵션
-
.pdb 파일의 이름과 위치를 지정합니다.
- /platform 옵션
-
IPF(Itanium 제품군) 및 x64 아키텍처를 대상으로 지정할 수 있습니다.
- #pragma warning
-
코드에서 개별 경고를 비활성화하거나 활성화하는 데 사용합니다.
참고 항목