Visual C#의 새로운 기능

업데이트: 2008년 7월

Visual C# 2008 서비스 팩 1의 새로운 기능

C# 언어

기능

설명

다양한 컴파일러 기능 개선

언어 사양과 일치하지 않는 기능을 제거하기 위해 C# 컴파일러의 많은 기능이 개선되었습니다. 이러한 개선 기능 중 일부는 주요 변경 사항에 해당하고, 일부는 소프트웨어 업데이트 또는 기능 향상에 해당합니다. 주요 변경 사항에 대한 자세한 내용은 Visual C# 2008의 주요 변경 사항을 참조하십시오. 서비스 팩 1에서 수정된 다른 버그에 대한 자세한 내용은 List of changes and fixed issues for Visual Studio 2008 Service Pack 1 Beta for Visual C#을 참조하십시오.

Visual C# IDE

기능

설명

라이브 의미 오류

Visual C# 2008 서비스 팩 1에서는 코드에 대한 종합적인 오류 정보를 제공하는 새 기능인 라이브 의미 오류가 도입되었습니다. 이 기능은 빌드 직후에 이전에 보고되었던 식 수준 오류를 감지합니다. 코드를 작성할 때 오류에 빨간색 물결선으로 밑줄이 표시됩니다. 물결 모양의 밑줄에 대한 자세한 내용은 코드 편집(Visual C#)을 참조하십시오.

LINQ 쿼리 디버깅

LINQ 쿼리 디버깅이 서비스 팩 1에서 크게 향상되었습니다.

  • 쿼리 식에서 개별 줄을 단계별로 실행할 때 조사식 창과 DataTips에서 범위 변수를 볼 수 있습니다.

  • 디버거에서 익명 형식 이름을 더 이상 숨기지 않으므로 이러한 이름을 캐스트 및 인스턴스화에도 표시할 수 있습니다. 따라서 디버깅 세션 동안 익명 형식의 임시 인스턴스를 만들 수 있습니다. 익명 형식에 대한 캐스트가 올바르게 계산됩니다.

  • 조사식에 추가하는 동안 생성된 문자열이 개선되어 Visual Studio 2008의 최초 릴리스 버전에서보다 더 자주 계산될 수 있는 식이 생성됩니다.

자세한 내용은 Microsoft 웹 사이트의 Sree's ventures in code space를 참조하십시오.

작업 목록 주석이 솔루션의 모든 파일에 표시됨

이전 릴리스의 Visual Studio에서는 작업 목록이 열려 있는 파일의 작업 주석으로만 채워졌습니다. Visual Studio 2008 서비스 팩 1의 C# IDE(통합 개발 환경)에서는 모든 열려 있는 파일과 닫힌 파일의 작업 주석이 솔루션에 표시됩니다. 자세한 내용은 방법: 작업 목록 주석 만들기를 참조하십시오.

Windows Presentation Foundation 프로젝트의 이름 바꾸기 리팩터링

Visual Studio 2008 서비스 팩 1에서는 이름 바꾸기 리팩터링을 사용하여 XAML에 정의된 참조의 이름을 바꿀 수 있습니다. 이름 바꾸기 리팩터링에 대한 자세한 내용은 이름 바꾸기를 참조하십시오.

LINQ

기능

설명

향상된 [M:Enumerable.Cast`1] 메서드

Visual C# 2008 서비스 팩 1에서는 기본값 변환 및 명시적으로 정의된 사용자 변환을 비활성화하여 Enumerable.Cast<T> 메서드의 성능을 향상시켰습니다. 기본값 변환의 예로는 int 데이터 형식에서 long 데이터 형식으로의 변환이 있습니다.

[M:Enumerable.Where`1] 및 [M:Enumerable.Select`1] 메서드의 성능 개선

Visual C# 2008 서비스 팩 1에서는 Where 표준 쿼리 연산자와 Select 표준 쿼리 연산자의 성능이 향상되었습니다.

Visual C# 2008 최초 릴리스 버전의 새로운 기능

C# 3.0 언어

C# 3.0 언어 및 컴파일러에는 몇 가지 새로운 언어 기능이 있습니다. 이러한 새 언어 구문은 개별적으로는 다양한 컨텍스트에서 유용하고 집합적으로는 LINQ(통합 언어 쿼리)를 수행하는 데 유용합니다. LINQ에 대한 자세한 내용은 The LINQ Project를 참조하십시오.

다음 표에서는 새 C# 3.0 언어 기능을 보여 줍니다.

기능

설명

암시적으로 형식화한 지역 변수 및 배열

지역 변수와 함께 사용될 경우 var 키워드는 초기화 문의 오른쪽에 있는 식에서 변수 또는 배열 요소의 형식을 유추하도록 컴파일러에 지시합니다.

개체 이니셜라이저

생성자를 명시적으로 호출하지 않고 개체 초기화를 수행할 수 있게 합니다.

컬렉션 이니셜라이저

Add 또는 다른 메서드에 대한 특정 호출이 아니라 초기화 목록을 사용하여 컬렉션 초기화를 수행할 수 있게 합니다.

확장 메서드

인스턴스 메서드 구문을 사용하여 호출할 수 있는 정적 메서드를 사용하여 기존 클래스를 확장합니다.

익명 형식

var를 사용하여 액세스하거나 컬렉션에 추가할 수 있는 명명되지 않은 구조화된 형식을 즉시 생성할 수 있게 합니다.

람다 식

대리자나 식 트리에 바인딩할 수 있는 입력 매개 변수를 가진 인라인 식을 사용할 수 있게 합니다. 익명 함수(C# 프로그래밍 가이드)를 참조하십시오.

쿼리 키워드

쿼리 식에서 절을 지정하는 키워드는 다음과 같습니다.

  • from 절

  • where 절(옵션)

  • ordering 절(옵션)

  • join 절(옵션)

  • select 또는 group 절

  • into 절(옵션)

자동으로 구현된 속성

단순화된 구문을 사용하여 속성을 선언할 수 있게 합니다.

부분 메서드(Partial Method) 정의

이제 부분 형식(Partial Type)에는 부분 메서드가 포함될 수 있습니다.

C# 3.0 컴파일러

  • /win32Manifest/noWin32Manifest 컴파일러 스위치
    이러한 새 컴파일러 스위치는 Windows Vista에서 실행 중인 프로그램에 필요한 실행 수준을 지정하는 데 사용됩니다.

Visual C# IDE

기능

설명

다중 대상 지정

Visual Studio 2008에서는 .NET Framework 2.0, 3.0 또는 3.5 중 프로젝트에 맞는 .NET Framework 버전을 지정할 수 있습니다. 응용 프로그램의 .NET Framework 대상은 해당 컴퓨터에서 응용 프로그램을 실행하는 데 필요한 .NET Framework 버전입니다. 자세한 내용은 특정 .NET Framework를 대상으로 지정을 참조하십시오.

새 프로젝트 형식 및 템플릿

Windows Presentation Foundation, Windows Communication Foundation 및 웹 프로젝트를 위한 여러 새 프로젝트 템플릿이 제공됩니다. 자세한 내용은 Visual C# 버전의 프로젝트 템플릿Visual Studio의 기본 프로젝트 템플릿을 참조하십시오.

C# 3.0을 위한 IntelliSense 지원

Visual C# 코드 편집기에서는 다음과 같은 C# 3.0의 새 언어 구문을 지원하기 위해 문 완성 및 요약 정보가 제공됩니다.

  • 암시적으로 형식화한 지역 변수

  • 쿼리 식

  • 확장 메서드

  • 개체/컬렉션 이니셜라이저

  • 익명 형식

  • 람다 식

  • 부분 메서드

자세한 내용은 Visual C# IntelliSense를 참조하십시오.

C# 3.0을 위한 리팩터링 지원

리팩터링 기능인 이름 바꾸기, 시그니처 변경, 메서드 추출 및 지역 변수 승격이 다음과 같은 새 언어 구문을 지원하도록 업데이트되었습니다.

  • 쿼리 식

  • 확장 메서드

  • 람다 식

또한 리팩터링에서는 리팩터링 작업을 통해 의도하지 않은 결과가 발생하지 않도록 방지하는 데 도움이 되는 새 옵션과 경고를 제공합니다. 자세한 내용은 리팩터링을 참조하십시오.

코드 서식

코드 편집기에서는 쿼리 식을 비롯한 여러 새 C# 3.0 언어 구문을 위한 서식 옵션이 지원됩니다. 자세한 내용은 옵션 대화 상자, 텍스트 편집기, C#, 서식을 참조하십시오.

Using 문 구성

Visual C# 코드 편집기에서는 편리하게 using 및 extern 선언을 정렬하고 사용되지 않는 선언을 제거할 수 있습니다.

참고 항목

기타 리소스

LINQ(통합 언어 쿼리)

Is C# becoming a functional language?

New Library Classes in the .NET Framework 3.5

변경 기록

날짜

변경 내용

이유

2008년 7월

Visual C# 2008 서비스 팩 1에 대한 단원이 추가되었습니다.

SP1 기능 변경