Новые возможности в Visual C#

Обновлен: Июль 2008

Новые возможности Visual C# 2008 с пакетом обновления 1

Язык C#

Функция

Описание

Различные усовершенствования компилятора

Многие усовершенствования были внесены в компилятор C#, чтобы избавиться от несоответствий со спецификацией языка. Некоторые из этих усовершенствований являются критическими изменениями, а другие — просто обновления или улучшения программного обеспечения. Дополнительные сведения о критических изменениях см. в разделе Критические изменения в Visual C# 2008. Дополнительные сведения о других устраненных ошибках в пакете обновления 1 см. в разделе Список изменений и устраненных проблем для бета-версии пакета обновления 1 Visual Studio 2008 для Visual C#.

Интегрированная среда разработки Visual C#

Функция

Описание

Live Semantic Errors

Visual C# 2008 с пакетом обновления 1 представляет новую функцию Live Semantic Errors, которая предоставляет более полный набор сведений об ошибках кода. Эта функция определяет ошибки уровня выражения, которые ранее были выведены только после построения. Она отмечает ошибки красной волнистой линией при создании кода. Дополнительные сведения о волнистых линиях см. в разделе Редактирование кода (Visual C#).

Отладка запросов LINQ

Отладка запросов LINQ значительно улучшена в пакете обновления 1.

  • Переменные диапазона теперь можно просматривать в окне контрольных значений и в DataTips при пошаговом проходе по отдельным строкам в выражении запроса.

  • Отладчик уже не скрывает имена анонимных типов и позволяет им появляться в приведениях и при создании экземпляров. Это позволяет создание временных экземпляров анонимных типов во время сеанса отладки. Приведение в анонимные типы и из них вычисляется правильно.

  • Строки, созданные для Add to Watch были улучшены, и они создают выражения, которые можно вычислять чаще, чем в исходной версии Visual Studio 2008.

Дополнительные сведения см. в разделе Затеи Шри в пространстве кода (на английском языке) на веб-узле корпорации Майкрософт.

Комментарии для списка задач отображаются для всех файлов в решении

В предыдущих версиях 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 (Language-Integrated Query). Дополнительные сведения о LINQ см. в разделе Проект LINQ.

В следующей таблице перечислены новые функции языка C# 3.0:

Функция

Описание

Неявно типизированные локальные переменные и массивы

При использовании с локальными переменными ключевое слово var указывает компилятору определить тип переменной или элементов массива из выражения в правой части оператора инициализации.

Инициализаторы объектов

Позволяет инициализировать объекты без явных вызовов конструктора.

Инициализаторы коллекций

Позволяет инициализировать коллекции с использованием списка инициализации, а не отдельных вызовов Add или другого метода.

Методы расширения

Расширяет существующие классы с помощью статического метода, который можно вызывать, используя синтаксис обращения к методу экземпляра.

Анонимные типы

Позволяет в реальном времени создавать неименованные структурированные типы, которые можно добавлять в коллекции и использовать с помощью var.

Лямбда-выражения

Позволяет использовать встроенные выражения с входными параметрами, которые могут быть привязаны к делегатам или деревьям выражений. См. также раздел Анонимные функции (Руководство по программированию в C#).

Ключевые слова запроса

Ключевые слова, которые указывают предложения в выражении запроса:

  • Предложения from

  • Предложение where (необязательное)

  • предложения упорядочения (необязательные)

  • Предложение join (необязательное)

  • Предложение select или group

  • Предложение into (необязательное)

Автоматически реализуемые свойства

Позволяет объявлять свойства с помощью упрощенного синтаксиса.

Определения разделяемых методов

Теперь разделяемые типы могут содержать разделяемые методы.

Компилятор C# 3.0

  • Переключатели компилятора /win32Manifest и /noWin32Manifest.
    Эти новые переключатели компилятора используются для указания запрошенных уровней выполнения для программ, запущенных в операционной системе Windows Vista.

Интегрированная среда разработки Visual C#

Функция

Описание

Настройка для различных версий

Visual Studio 2008 позволяет указать версию .NET Framework для проекта .NET Framework 2.0, 3.0 или 3.5. Указываемая для приложения версия .NET Framework является версией .NET Framework, необходимой для запуска этого приложения на компьютере. Дополнительные сведения см. в разделе Указание конкретной платформы .NET Framework.

Новые типы и шаблоны проектов

Доступны несколько новых шаблонов проектов для Windows Presentation Foundation, Windows Communication Foundation и веб-проектов. Дополнительные сведения см. в разделах Шаблоны проектов в выпусках Visual C# и Шаблоны проектов в Visual Studio по умолчанию.

Поддержка IntelliSense для C# 3.0

В редакторе кода Visual C# доступны краткие сведения и завершение операторов для поддержки следующих новых языковых конструкций в C# 3.0:

  • Неявно типизированные локальные переменные

  • Выражения запроса

  • Методы расширения

  • Инициализаторы объектов/коллекций

  • Анонимные типы

  • Лямбда-выражения

  • Разделяемые методы

Дополнительные сведения см. в разделе IntelliSense для Visual C#.

Поддержка оптимизации кода для C# 3.0

Функции оптимизации кода Переименовать, Изменение подписи, Извлечение метода, и Преобразование локальной переменной были обновлены для обеспечения поддержки следующих языковых конструкций:

  • Выражения запроса

  • Методы расширения

  • Лямбда-выражения

Кроме того, оптимизация кода позволяет использовать новые параметры и предупреждения, с помощью которых можно предотвратить непредусмотренные последствия выполнения оптимизации кода. Дополнительные сведения см. в разделе Оптимизация.

Форматирование кода

Редактор кода поддерживает параметры форматирования для нескольких новых языковых конструкций C# 3.0, включая выражения запроса. Дополнительные сведения см. в разделе Страница "Форматирование", папка "C#", папка "Текстовый редактор", диалоговое окно "Параметры".

Оптимизация директив Using

В редакторе кода Visual C# доступна простая функция сортировки объявлений using и extern и удаления неиспользуемых объявлений.

См. также

Другие ресурсы

LINQ

Становится ли C# функциональным языком?

Новые классы библиотеки на платформе .NET Framework 3.5

Журнал изменений

Дата

Журнал

Причина

Июль 2008

Добавлен раздел о Visual C# 2008 с пакетом обновления 1.

Изменение функции SP1.