Загрузки последних поддерживаемых версий Распространяемого компонента Visual C++
Распространяемый компонент Visual C++ устанавливает библиотеки среды выполнения Microsoft C и C++ (MSVC). Эти библиотеки необходимы многим приложениям, созданным с помощью средств Microsoft C и C++. Если приложение использует эти библиотеки, перед установкой приложения необходимо установить пакет Microsoft Распространяемый компонент Visual C++ в целевой системе. Архитектура распространяемого пакета должна соответствовать целевой архитектуре приложения. Распространяемая версия должна быть не менее последней, чем набор инструментов сборки MSVC, используемый для сборки приложения. Мы рекомендуем использовать последнюю распространяемую версию Visual Studio, за исключением некоторых исключений, указанных далее в этой статье.
Дополнительные сведения об установке и распространении компонентов Visual Studio см. в разделе «Распространение файлов Visual C++».
Visual Studio 2015, 2017, 2019 и 2022
В этой таблице перечислены последние поддерживаемые пакеты Microsoft Распространяемый компонент Visual C++ для Visual Studio 2015, 2017, 2019 и 2022. Последняя поддерживаемая версия имеет последние реализованные функции C++, безопасность, надежность и производительность. Он также включает последние обновления соответствия стандартов языка И библиотекИ C++ . Мы рекомендуем установить эту версию для всех приложений, созданных с помощью Visual Studio 2015, 2017, 2019 или 2022.
В отличие от старых версий Visual Studio, которые имеют редкие обновления redist, номер версии не указан в следующей таблице для Visual Studio 2015-2022, так как редист часто обновляется. Чтобы найти номер версии последнего редиста, скачайте нужный редист, используя одну из следующих ссылок. Затем просмотрите его свойства с помощью Windows проводник. В области сведений версия файла содержит версию redist.
| Архитектура | Ссылка | Примечания. |
|---|---|---|
| ARM64 | https://aka.ms/vs/17/release/vc_redist.arm64.exe | Permalink для последней поддерживаемой версии ARM64 |
| X86 | https://aka.ms/vs/17/release/vc_redist.x86.exe | Permalink для последней поддерживаемой версии x86 |
| X64 | https://aka.ms/vs/17/release/vc_redist.x64.exe | Permalink для последней поддерживаемой версии x64. Распространяемый пакет X64 содержит двоичные файлы ARM64 и X64. Этот пакет упрощает установку необходимых двоичных файлов Visual C++ ARM64 при установке распространяемого компонента X64 на устройстве ARM64. |
Скачайте другие версии, включая долгосрочные версии канала выпуска LTSC, из my.visualstudio.com.
Примечания.
- В Распространяемый компонент Visual C++ для Visual Studio 2015-2022 нет отдельных пакетов для разных языков. Он содержит EULAs для всех поддерживаемых языков.
- Некоторые загрузки, которые упоминание в этой статье, доступны в настоящее время на my.visualstudio.com. Войдите с помощью учетной записи подписки Visual Studio, чтобы получить доступ к ссылкам скачивания. Если вы запрашиваете учетные данные, используйте имеющуюся учетную запись подписки Visual Studio. Или создайте бесплатную учетную запись, выбрав учетную запись «Нет»? Создайте его! Ссылку.
- Версии Visual Studio, начиная с Visual Studio 2015, используют те же распространяемые файлы. Например, любые приложения, созданные наборами инструментов Visual Studio 2015, 2017, 2019 или 2022, могут использовать последние Распространяемый компонент Visual C++ Майкрософт. Однако версия Microsoft Распространяемый компонент Visual C++, установленной на компьютере, должна быть той же или выше, чем версия набора инструментов Visual C++, используемого для создания приложения. Дополнительные сведения о том, какую версию распространяемого компонента необходимо установить, см. в разделе «Определение распространяемых библиотек DLL». Дополнительные сведения о двоичной совместимости см. в статье C++ с двоичной совместимостью между версиями Visual Studio.
- Поддержка Windows XP: корпорация Майкрософт завершила поддержку Windows XP 8 апреля 2014 г. Текущие версии Распространяемый компонент Visual C++ для Visual Studio 2015-2022 поддерживают только Windows Vista, 7, 8.1, 10 и 11. Последняя версия Распространяемый компонент Visual C++, которая работает в Windows XP, поставляется в Visual Studio 2019 версии 16.7 (версии файлов, начиная с версии 14.27). Распространяемый компонент доступен в разделе my.visualstudio.com Загрузки как Распространяемый компонент Visual C++ для Visual Studio 2019 (версия 16.7). Используйте поле поиска, чтобы найти эту версию. Чтобы скачать файлы, выберите нужную платформу и язык, а затем нажмите кнопку «Скачать «.
- Распространяемый компонент Visual C++ поддерживает несколько параметров командной строки. Дополнительные сведения см. в разделе «Параметры командной строки» для распространяемых пакетов.
Visual Studio 2013 (VC++ 12.0)
Эти ссылки загружают последние поддерживаемые пакеты microsoft microsoft en-US Распространяемый компонент Visual C++ для Visual Studio 2013. Другие версии и языки можно скачать из обновления для распространяемого пакета Visual C++ 2013 или из my.visualstudio.com.
| Архитектура | Версия | Ссылка |
|---|---|---|
| X86 | 12.0.40664.0 | vcredist_x86.exe |
| X64 | 12.0.40664.0 | vcredist_x64.exe |
Другие версии
- Многобайтовая библиотека MFC для Visual Studio 2013. Эта надстройка MFC для Visual Studio 2013 содержит многобайтовый набор символов (МБ CS) библиотеки классов Microsoft Foundation (MFC).
- Среда выполнения Visual C++ 2013 для неопубликованных приложений Windows 8.1. Дополнительные сведения см. в разделе «Среда выполнения C++ для неопубликованных приложений Windows 8.1» в блоге команды C++.
Visual Studio 2012 (VC++ 11.0) с обновлением 4 (больше не поддерживается)
Эти ссылки скачивают последние доступные пакеты microsoft en-US Распространяемый компонент Visual C++ для Visual Studio 2012 с обновлением 4. Другие версии и языки можно скачать из пакетов Microsoft Распространяемый компонент Visual C++ для Visual Studio 2012 с обновлением 4 или с my.visualstudio.com.
| Архитектура | Версия | Ссылка |
|---|---|---|
| X86 | 11.0.61030.0 | en_visual_cpp_redistributable_for_visual_studio_2012_update_4_x86_3161523.exe |
| X64 | 11.0.61030.0 | en_visual_cpp_redistributable_for_visual_studio_2012_update_4_x64_3161523.exe |
Visual Studio 2010 (VC++ 10.0) с пакетом обновления 1 (SP1) (больше не поддерживается)
| Архитектура | Версия | Ссылка |
|---|---|---|
| X86 | 10.0.40219.325 | vcredist_x86.exe |
| X64 | 10.0.40219.325 | vcredist_x64.exe |
Скачайте распространяемые файлы для других языков и архитектур:
Visual Studio 2008 (VC++ 9.0) с пакетом обновления 1 (SP1) (больше не поддерживается)
Visual Studio 2008 с пакетом обновления 1 (SP1) достигла конца расширенной поддержки 10 апреля 2018 г.
| Архитектура | Версия | Ссылка |
|---|---|---|
| X86 | 9.0.30729.5677 | vcredist_x86.exe |
| X64 | 9.0.30729.5677 | vcredist_x64.exe |
Скачайте распространяемые файлы для других языков и архитектур:
Visual Studio 2005 (VC++ 8.0) с пакетом обновления 1 (SP1) (больше не поддерживается)
Окончание расширенной поддержки Visual Studio 2005 12 апреля 2016 г.
- Распространяемые файлы для архитектур X86, X64 и IA64 доступны в microsoft Visual C++ 2005 с пакетом обновления 1 для распространяемого пакета MFC.
Visual C Sharp
Visual C # 2005 Express Edition — визуальная среда разработки для языка C#, ориентированная на объекты, созданные Microsoft для .NET Framework.
Базовый синтаксис унаследован от языков C/C++, но также включает некоторые улучшения из других языков.
Visual C# 2005 позволяет визуально разрабатывать приложения для Windows. Посредством функции ‘drag and drop’ вы можете добавлять больше элементов к формам.
В панели инструментов все элементы сгруппированы по категориям, что значительно облегчает поиск того, что вам нужно.
Visual C # 2005 включает функцию IntelliSense, которая облегчает процесс написания исходного кода, позволяя избежать необходимости запоминать названия всех свойств, методов, событий и т.д.
Проверено Álvaro Toledo Переведено Uptodown Localization Team
Требования (последняя версия)
- Требуется Android 4.1 или выше
История языка C#
В этой статье содержится описание основных выпусков языка C#. Команда разработчиков C# продолжает добавлять новые функции. Сведения о состоянии функции для отдельных языков, включая функции, которые будут добавлены в предстоящие выпуски, см. в репозитории dotnet/roslyn на сайте GitHub.
В некоторых возможностях используются типы и методы, которые в спецификации C# определены как стандартная библиотека. Платформа .NET предоставляет эти типы и методы в разных пакетах. например, обработка исключений. Каждая инструкция и выражение throw проверяется, чтобы убедиться, что вызываемый объект является производным от Exception. Аналогичным образом каждая инструкция catch проверяется, чтобы убедиться, что перехваченный тип является производным от Exception. В каждой версии могут добавляться новые требования. Чтобы использовать новейшие возможности языка в старой среде, может потребоваться установить определенные библиотеки. Эти зависимости описаны на странице для каждой конкретной версии. Дополнительные сведения о связи между языком и библиотекой, а также общие сведения о такой зависимости см. здесь.
C# версии 11
Выпущено ноябрь 2022 г.
В C# 11 добавлены следующие функции:
- Необработанные строковые литералы
- Поддержка универсальной математики
- Универсальные атрибуты
- Строковые литералы UTF-8
- Новые строки в выражениях интерполяции строк
- Шаблоны списка
- Локальные типы файлов
- Обязательные элементы
- Автоматические структуры по умолчанию
- Сопоставление Span шаблонов для константы string
- Расширенные nameof область
- Числовой intPtr
- ref поля и scoped ref
- Улучшенное преобразование групп методов для делегирования.
- Предупреждающие волны 7
C# 11 содержит универсальные математические функции и несколько функций, поддерживающих эту цель. Числовые алгоритмы можно записывать один раз для всех типов чисел. Существует больше возможностей для упрощения работы с struct типами, такими как обязательные элементы и структуры по умолчанию. Работа со строками упрощается с необработанными строковыми литералами, новой строкой в интерполяциях строк и строковых литералах UTF-8. Такие функции, как локальные типы файлов, позволяют упростить генераторы источников. Наконец, шаблоны списков добавляют дополнительную поддержку сопоставления шаблонов.
C# версии 10
Выпущено в ноябре 2021 г.
В C# 10 добавлены следующие функции и улучшения языка C#:
- Структуры записей
- Улучшения типов структуры
- Обработчики интерполированных строк
- Директивы global using
- Объявление пространства имен в пределах файла
- Расширенные шаблоны свойств
- Усовершенствования в лямбда-выражениях
- Разрешены интерполированные строки const
- Типы записей могут запечатывать ToString()
- Улучшенное определенное назначение
- Разрешено присваивание и объявление в одном и том же деконструировании
- Разрешен атрибут AsyncMethodBuilder в методах
- Атрибут CallerArgumentExpression
- Улучшенная прагма #line
Дополнительные возможности доступны в режиме предварительной версии . Чтобы использовать эти функции, необходимо задать значение Preview в проекте:
- Универсальные атрибуты далее в этой статье.
- статические абстрактные члены в интерфейсах
C# 10 продолжает работу над темами удаления церемонии, разделения данных от алгоритмов и повышения производительности среды выполнения .NET.
Многие функции означают, что вы вводите меньше кода, чтобы выразить те же понятия. Структуры записей синтезируют многие из одинаковых методов, которые записывают классы . Структуры и анонимные типы поддерживаются выражениями. Глобальные директивыи объявления пространства имен область файла означают, что вы выражаете зависимости и организацию пространства имен более четко. Лямбда-улучшения упрощают объявление лямбда-выражений, где они используются. Новые шаблоны свойств и улучшения деконструкции создают более краткий код.
Новые интерполированные обработчики строк и AsyncMethodBuilder поведение могут повысить производительность. Эти языковые функции были применены в среде выполнения .NET для повышения производительности в .NET 6.
C# 10 также отмечает большую часть смены ежегодной каденции для выпусков .NET. Так как не каждая функция может быть завершена в течение ежегодного периода времени, вы можете попробовать несколько функций предварительной версии в C# 10. Можно использовать как универсальные атрибуты, так и статические абстрактные члены в интерфейсах, но эти предварительные версии могут изменяться до их окончательного выпуска.
C# версии 9
Выпущено в ноябре 2020 г.
C# версии 9 был выпущен с .NET 5. Это версия языка используется по умолчанию для любой сборки, предназначенной для выпуска .NET 5. Она содержит следующие новые и улучшенные функции:
- Записи
- Инициализация только наборов
- Операторы верхнего уровня
- Улучшения сопоставления шаблонов: реляционные шаблоны и логические шаблоны
- Производительность и взаимодействие
- Целые числа собственного размера
- Указатели функций
- Отключение флага localsinit
- Инициализаторы модулей
- Новые функции для частичных методов
- Выражения new с целевым типом
- Анонимные функции static
- Целевые условные выражения с типом
- Типы возвращаемых ковариантных значений
- Поддержка расширения GetEnumerator для циклов foreach
- Параметры лямбда-дис карта
- Атрибуты для локальных функций
В C# 9 получили развитие три направления предыдущих выпусков: устранение формальностей, отделение данных от алгоритмов и доступность большего количества шаблонов в большем количестве мест.
Операторы верхнего уровня упрощают чтение основной программы. Сократилась потребность в формальностях: больше не нужны ни пространства имен, Program , ни классы, ни static void Main() .
Введение records содержит краткий синтаксис для ссылочных типов, которые соответствуют семантике значений для равенства. Эти типы используются для определения контейнеров данных, которые обычно определяют минимальное поведение. Методы задания только инициализации предоставляют возможность для обратимого изменения (выражений with ) в записях. В C# 9 также добавлены ковариантные возвращаемые типы, благодаря чему производные записи могут переопределять виртуальные методы и возвращать тип, производный от возвращаемого типа базового метода.
Возможности сопоставления шаблонов расширены в нескольких направлениях. Числовые типы теперь поддерживают шаблоны диапазонов. Шаблоны можно комбинировать с помощью шаблонов and , or и not . Скобки можно добавить для уточнения более сложных шаблонов:
C# 9 включает новые улучшения сопоставления шаблонов.
- Шаблоны типов соответствуют объекту определенного типа
- Шаблоны в круглых скобках усиливают или подчеркивают приоритет сочетаний шаблонов.
- В шаблонах конъюнкций and требуется соответствие обоих шаблонов.
- В шаблонах дизъюнкций or требуется соответствие хотя бы одного из шаблонов.
- В шаблонах not с отрицанием требуется несоответствие данного шаблона.
- В шаблонах сравнения требуется, чтобы входные данные были меньше, больше, меньше или равны, больше или равны данной константе.
Эти шаблоны обогащают синтаксис шаблонов. Рассмотрим следующие примеры.
public static bool IsLetter(this char c) => c is >= 'a' and = 'A' andС помощью дополнительных скобок можно явно указать, что and имеет более высокий приоритет, чем or .
public static bool IsLetterOrSeparator(this char c) => c is (>= 'a' and = 'A' andОдним из наиболее распространенных применений нового синтаксиса является проверка значения на null.
if (e is not null) < // . >Любой из этих шаблонов можно использовать в любом контексте, где разрешены шаблоны: выражения с шаблоном is , выражения switch , вложенные шаблоны и шаблоны метки case оператора switch .
Высокопроизводительные вычисления на C# поддерживает еще один набор функций.
- Типы nint и nuint моделируют целочисленные типы собственного размера в целевом ЦП.
- Указатели функций предоставляют функциональные возможности, подобные возможностям делегатов, но при этом не требуют выделения, необходимого для создания объекта-делегата.
- Инструкцию localsinit можно опустить для сохранения инструкций.
Производительность и взаимодействие
Еще один набор улучшений поддерживает сценарии, в которых генераторы кода добавляют функциональные возможности.
- Инициализаторы модулей — это методы, которые среда выполнения вызывает при загрузке сборки.
- Разделяемые методы поддерживают новые модификаторы доступа и возвращаемые типы, отличные от void. В таких случаях необходимо предоставить реализацию.
Функции подбора и завершения
В C# 9 добавлено множество других небольших функций, улучшающих производительность разработчиков, а также написание и чтение кода:
- Выражения new целевого типа
- Анонимные функции static
- Условные выражения целевого типа
- Поддержка расширения GetEnumerator() для циклов foreach
- Лямбда-выражения могут объявлять параметры отмены
- Атрибуты могут применяться к локальным функциям
Выпуск C# 9 — это следующий этап развития, благодаря которому C# остается современным языком программирования общего назначения. Его возможности обеспечат дальнейшую поддержку современных рабочих нагрузок и типов приложений.
C# версии 8.0
Выпущено сентября 2019 г.
C# 8.0 — это первый основной выпуск C#, специально предназначенный для .NET Core. Некоторые функции основаны на новых возможностях среды CLR, другие — на типах библиотек, добавленных только в .NET Core. В C# 8.0 добавлены следующие функции и улучшения языка C#:
- Члены только для чтения
- Методы интерфейса по умолчанию
- Улучшения сопоставления шаблонов:
- Выражения switch
- Шаблоны свойств
- Шаблоны кортежей
- Позиционные шаблоны
Для членов интерфейса по умолчанию требуются улучшения среды CLR. Эти функции были добавлены в среду CLR для .NET Core 3.0. Для диапазонов и индексов, а также для асинхронных потоков требуются новые типы в библиотеках .NET Core 3.0. Ссылочные типы, допускающие значение NULL, реализованные в компиляторе, гораздо удобнее использовать, когда библиотеки снабжаются заметками для предоставления семантической информации о состоянии NULL аргументов и возвращаемых значений. Эти заметки сейчас добавляются в библиотеки .NET Core.
C# версии 7.3
Выпущено май 2018 г.
Новые возможности в выпуске C# 7.3 можно разделить на две основные группы. Одна из них — набор функций для повышения эффективности безопасного кода до уровня небезопасного кода. Вторая — постепенные улучшения существующих функций. В этом выпуске добавлены новые параметры компилятора.
В ту группу, которая отвечает за повышение производительности безопасного кода, входят следующие новые возможности:
- доступ к полям фиксированной ширины без закрепления;
- возможность переназначать локальные переменные ref ;
- возможность использовать инициализаторы для массивов stackalloc ;
- возможность использовать инструкции fixed с любым типом, который поддерживает шаблон;
- Можно использовать более универсальные ограничения.
Для существующих функций предоставлены следующие улучшения:
- возможность проверить == и != с типами кортежа;
- больше мест для использования переменных выражений;
- возможность подключить атрибуты к резервному полю автоматически реализуемых свойств;
- улучшенное разрешение методов, аргументы которых отличаются модификатором in ;
- стало меньше неоднозначных вариантов при разрешении перегрузок.
Новые параметры компилятора:
- -publicsign позволяет включить подписывание сборок как программного обеспечения с открытым кодом;
- -pathmap позволяет предоставить сопоставление для исходных каталогов.
C# версии 7.2
Выпущено в ноябре 2017 г.
В C# 7.2 добавлено несколько небольших языковых функций:
- возможность использовать инициализаторы для массивов stackalloc ;
- возможность использовать инструкции fixed с любым типом, который поддерживает шаблон;
- доступ к полям фиксированной ширины без закрепления;
- возможность переназначать локальные переменные ref ;
- объявление типов readonly struct , указывающее, что структура является неизменяемой и должна передаваться в методы члена как параметр in ;
- добавление модификатора in для параметров, указывающего, что аргумент передается по ссылке, но не изменяется вызываемым методом;
- использование модификатора ref readonly для возвращаемого значения метода, указывающего, что метод возвращает значение по ссылке, но не допускает операции записи в соответствующий объект;
- объявление типов ref struct , указывающее, что тип структуры обращается напрямую к управляемой памяти и всегда должен обрабатываться с выделением стека;
- возможность использовать дополнительные универсальные ограничения.
- Неконечные именованные аргументы
- После именованных аргументов могут следовать позиционные аргументы.
- Перед любыми печатными знаками в числовых литералах теперь могут использоваться начальные знаки подчеркивания.
- Модификатор доступа private protected разрешает доступ для производных классов в одной сборке.
- Результат условного выражения ?: теперь может быть ссылкой.
C# версии 7.1
Выпущено августа 2017 г.
C# начали выпускать доработанные выпуски с C# 7.1. В этой версии добавлен элемент конфигурации выбора версии языка, три новых возможности языка и новое поведение компилятора.
Новые языковые функции в этом выпуске
- метод async Main .
- Точка входа для приложения может иметь модификатор async .
- Литеральные выражения по умолчанию можно использовать в выражениях значения по умолчанию, если можно вывести тип целевого объекта.
- Имена элементов кортежа часто можно вывести из инициализации кортежа.
- Выражения сопоставления шаблонов можно использовать с переменными, тип которых является параметром универсального типа.
Наконец, у компилятора есть два параметра -refout и -refonly , которые управляют созданием базовой сборки.
C# версии 7.0
Выпущено за март 2017 г.
C# версии 7.0 был выпущен вместе с Visual Studio 2017. Эта версия имеет некоторые эволюционные и холодные вещи в вену C# 6.0. Ниже приведены некоторые из новых функций:
- Переменные Out
- Кортежи и деконструкция
- Сопоставление шаблонов
- Локальные функции
- Расширенные элементы, воплощающие выражение
- Ссылка на локальные параметры
- Возврат ссылок
- Пустые переменные
- Двоичные литералы и цифровые разделители
- Выражения throw
Все эти функции предлагают новые возможности для разработчиков и возможность писать более чистый код, чем когда-либо. Важным аспектом является доработка объявления переменных путем использования ключевого слова out и поддержки нескольких возвращаемых значений благодаря кортежу. Теперь .NET Core подходит для любой операционной системы, а также уверенно движется в направлении облачных технологий и портативности. Очевидно, что разработчики активно занимаются этими новыми возможностями наравне с добавлением новых функций.
C# версии 6.0
Выпущено июля 2015 г.
Версия 6.0, выпущенная в Visual Studio 2015, выпустила множество небольших функций, что сделало программирование C# более продуктивным. Вот некоторые из них:
- Статические импорты
- Фильтры исключений
- Инициализаторы автосвойств
- Элементы, воплощающие выражение
- Null-распространитель
- Интерполяция строк
- Оператор nameof
Другие новые возможности:
- Инициализаторы индекса
- Выражение Await в блоках Catch и Finally
- Значения по умолчанию для свойств метода получения
Каждая из этих функций интересна сама по себе. Но если взглянуть на них вместе, заметна интересная особенность. В этой версии C# начал устранять шаблоны языка, чтобы сделать код более удобочитаемым и доступным для чтения. Поэтому эта версия, несомненно, привлечет сторонников простого и понятного кода.
Еще одно новшество, связанное с этой версией, не является функцией языка в обычном понимании. Состоялся выпуск компилятора Roslyn в виде службы. Теперь компилятор C# написан на C#, и вы можете использовать его при программировании.
C# версии 5.0
Выпущено августа 2012 г.
Версия C# 5.0, выпущенная вместе с Visual Studio 2012, была крайне целенаправленной. Практически все нововведения в этой версии касались другой инновационной концепции: модели async и await для асинхронного программирования. Ниже приведен список основных функций:
- Асинхронные члены
- Информационные атрибуты вызывающего объекта
- Проект кода. Информационные атрибуты вызывающего объекта в C# 5.0
Информационный атрибут вызывающего объекта позволяет легко получать сведения о контексте, в котором выполняется работа, не прибегая к массивному стандартному коду отражения. Он находит обширное применение в задачах диагностики и ведения журнала.
Однако настоящими звездами этого выпуска являются async и await . После появления этих функций в 2012 г. C# удалось снова взять быка за рога, первоклассным образом внедрив асинхронность в язык. Если вы когда-либо сталкивались с длительными операциями и реализацией переплетающихся обратных вызовов, эта возможность, скорее всего, вам понравится.
C# версии 4.0
Выпущено апреля 2010 г.
Разработчикам версии C# 4.0, выпущенной вместе с Visual Studio 2010, пришлось приложить серьезные усилия, чтобы не отставать от новаторской версии 3.0. Эта версия представила некоторые интересные новые возможности:
- Динамическая привязка
- Именованные/дополнительные аргументы
- Универсальная ковариантность и контравариантность
- Внедренные типы взаимодействия
Внедренные типы взаимодействия облегчили создание сборок COM-взаимодействия для приложения при развертывании. Универсальная ковариантность и контравариантность расширяют возможности применения универсальных шаблонов, однако эти функции несколько академичны и высоко оценены авторами, создающими платформы и библиотеки. Именованные и дополнительные параметры позволяют избавиться от многих перегрузок методов и сделать работу более удобной. Однако ни одна из этих функций не является кардинальным изменением.
Значимым событием стало появление ключевого слова dynamic . Благодаря ключевому слову dynamic в C# версии 4.0 появилась возможность переопределять компилятор при типизации во время компиляции. Используя это ключевое слово, вы можете создавать конструкции, характерные для языков с динамической типизацией, таких как JavaScript. Вы можете создать dynamic x = "a string" и добавить туда шестерку, отложив решение о дальнейших действиях во времени выполнения.
Динамическое связывание подвержено ошибкам, однако открывает великолепные возможности внутри языка.
C# версии 3.0
Выпущено ноября 2007 г.
C# версии 3.0 был выпущен в конце 2007 года вместе с Visual Studio 2008, однако существенно набор возможностей языка пополнится только в .NET Framework версии 3.5. Эта версия ознаменовала кардинальное изменение развития C#. Она доказала, что C# действительно является достойным языком программирования. Давайте рассмотрим некоторые основные возможности в этой версии:
- Автоматически реализуемые свойства
- Анонимные типы
- Выражения запросов
- Лямбда-выражения
- Деревья выражений
- Методы расширения
- Неявно типизированные локальные переменные
- Разделяемые методы
- Инициализаторы объектов и коллекций
Если оглянуться назад, становится ясно, что многие из этих возможностей не могли не появиться или появиться отдельно друг от друга. Все они образуют единый и стратегически значимый набор. Принято считать, что уникальным преимуществом C# было выражение запроса, которое также называется LINQ.
Немного углубившись, можно отметить деревья выражений, лямбда-выражения и анонимные типы как основу для создания LINQ. Однако в любом случае в C# 3.0 была представлена революционная концепция. Версия C# 3.0 начала закладывать фундамент для превращения C# в гибридный объектно-ориентированный/функциональный язык.
Среди прочего, теперь вы можете создавать декларативные запросы в стиле SQL для выполнения операций с коллекциями. Вместо создания цикла for для вычисления среднего значения из списка целых чисел теперь вам достаточно использовать list.Average() . Сочетание выражений запросов и методов расширения сделало список целых чисел намного умнее.
C# версии 2.0
Выпущено ноября 2005 г.
Давайте рассмотрим некоторые основные возможности языка C# 2.0, выпущенного в 2005 году вместе с Visual Studio 2005:
- Универсальные шаблоны
- Разделяемые типы
- Анонимные методы
- Типы значений, допускающие значение NULL
- Итераторы
- Ковариантность и контравариантность
Другие возможности C# 2.0 расширяли существующие возможности:
- Отдельный доступ к методу получения и методу задания
- Преобразования групп методов (делегаты)
- Статические классы
- Выведение делегата
Хотя сначала C# и был универсальным объектно-ориентированным языком, в C# версии 2.0 все кардинально изменилось. Благодаря универсальным шаблонам вы получаете типы и методы, которые могут работать с произвольным типом, при этом обеспечивая безопасность типа. В результате, например, наличие List позволяет использовать List или List и совершать типобезопасные операции с этими строками или целыми числами, выполняя итерацию по ним. Использование универсальных шаблонов лучше, чем создание типа, наследуемого ListInt от Object ArrayList каждой операции или приведения от нее.
В C# версии 2.0 появились итераторы. Если кратко, итераторы позволяют изучать все элементы в List (или других перечислимых типов) с помощью цикла foreach . Наличие итераторов в качестве первоклассного компонента в языке значительно улучшило удобочитаемость языка и способность воспринимать код.
А еще C# продолжил играть в салки с Java. Для Java уже были выпущены версии, включающие универсальные шаблоны и итераторы. Но вскоре этому было суждено измениться, так как языки продолжили развиваться независимо.
Версия для C# 1.2
Выпущено апреля 2003 г.
Версия C# 1.2 входит в состав Visual Studio .NET 2003. Она содержит ряд небольших улучшений языка. Наиболее значительным изменением является то, что начиная с этой версии код, создаваемый в цикле foreach , вызывает Dispose в IEnumerator, если IEnumerator реализует IDisposable.
C# версии 1.0
Выпущено за январь 2002 г.
Если взглянуть на C# версии 1.0, выпущенный вместе с Visual Studio .NET 2002, станет очевидно его сходство с Java. В рамках своих указанных целей проектирования для ECMA она стремилась быть "простым, современным, объектно-ориентированным языком общего назначения". В то время, похоже, Java означает, что он достиг этих ранних целей проектирования.
Однако если взглянуть на C# 1.0 сейчас, вам может стать немного не по себе. В этой версии не было встроенных асинхронных возможностей и некоторых функций для универсальных шаблонов, к которым вы уже привыкли. Фактически, в ней вообще не было универсальных шаблонов. А LINQ? Пока недоступно. Для добавления этих возможностей потребовалось несколько лет.
По современным меркам C# версии 1.0 не предоставлял практически никаких возможностей. Вам пришлось бы писать довольно подробный код. Однако надо же было с чего-то начинать. C# версии 1.0 был достойной альтернативой Java на платформе Windows.
Основные возможности C# 1.0 включали следующие компоненты:
Статьяизначально опубликована в блоге NDepend, с разрешения Эрика Дитриха (Erik Dietrich) и Патрика Смачиа (Patrick Smacchia).
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Что такое C# в программирование
Языки программирования - это основа, на которой функционируют миллионы продуктов и процессов, которые мы используем в повседневной жизни.
Во всем, от сложных систем безопасности до устройств в наших домах, используется код, написанный на различных языках программирования, и огромная часть инженерных работ хотя бы частично пересекается с написанием, разработкой или проектированием оборудования, которое использует программное обеспечение для работы.
C# — довольно современный язык программирования, который был разработан только в 2000 году и быстро завоевал популярность благодаря своему стилю и диапазону использования. Программистам, микропрограммам и встраиваемым системам полезно знать язык C# и его приложения, особенно если они работают над разработкой таких веб-приложений, для которых другие языки не подходят. Независимо от того, являетесь ли вы инженером-программистом, желающим расширить свой набор навыков, или работодателем, желающим нанять сотрудников, свободно владеющих C#, понимание того, что это такое и как оно работает, очень полезно. В этой статье мы расскажем об истории C#, его использовании и приложениях, а также ответим на некоторые часто задаваемые вопросы о языке программирования.
C# — это современный язык программирования общего назначения, принадлежащий к семейству производных от C языков, таких как C++ и C, а также очень похожий на Java и JavaScript. Это высокоуровневый, развивающийся язык программирования, который был разработан в течение последних двадцати лет, чтобы позволить программистам создавать программное обеспечение и приложения, которые будут применяться еще двадцать лет в будущем.
Первоначально разработанный разработчиками Microsoft, C# представляет собой масштабируемый и универсальный язык, который можно использовать как в среде Windows .NET, так и во многих других платформах с открытым исходным кодом. Он является типобезопасным, объектно-ориентированным и компонентно-ориентированным и используется многими современными разработчиками в различных проектах.
Для чего используется C#?
C# — очень универсальный язык, но в основном он используется для разработки веб-приложений благодаря своим функциям, которые делают его идеальным для создания интерактивных сред. Тот факт, что язык является объектно-ориентированным, означает, что его обычно выбирают для создания веб-сайтов, которые работают очень эффективно, могут масштабироваться без особых усилий и просты в обслуживании или отладке. Простота и удобочитаемость C# означают, что он используется программистами с широким спектром возможностей для создания всех видов программного обеспечения, которое можно запускать на большинстве платформ. Его происхождение от Microsoft означает, что он часто используется для создания программ для Windows, но не ограничивается этой операционной системой.Три наиболее распространенных применения C# — это приложения для Windows, разработка веб-сайтов и разработка игр. Его также можно использовать для создания мобильных приложений, программного обеспечения IoT, систем искусственного интеллекта и ряда серверных услуг.
История С#
C# был разработан в Microsoft Андерсом Хейлсбергом и группой других разработчиков в начале 2000-х годов. Это один из самых молодых языков программирования, имеющий такое большое количество поклонников и сообщество энтузиастов, и в настоящее время он находится в девятой версии.Истоки C# заключаются в том, что спрос на языки, на которых можно разрабатывать веб-приложения, рос, а в некоторых случаях C++ не предоставлял всех необходимых функций. Он использует многие из лучших функций Java и C++ и предлагает аналогичный язык, который гораздо лучше подходит для быстрой разработки программного обеспечения и создания интерактивных онлайн-сред. C# также был создан в рамках инициативы Microsoft .NET framework , которая представляет собой реализацию компанией общеязыковой инфраструктуры (CLI). Это обеспечивает совместимость языков и использует обширный набор библиотек, которые легко интегрируются с языками, используемыми в инфраструктуре, такой как C#.
С# версии 1.0
Первоначальная версия C# была очень простым языком программирования, очень похожим на Java. Он включал такие функции, как классы, структуры, операторы, атрибуты, интерфейсы и события.С# версии 1.2
Это обновление исходной версии C# было выпущено вместе с Visual Studio .NET 2003. Оно включало несколько незначительных изменений в язык, в первую очередь то, что код, сгенерированный в цикле foreach, назывался Dispose на IEnumerator.С# версии 2.0
C# 2.0 был выпущен в 2005 году и включал новые функции, такие как универсальные шаблоны, анонимные методы, итераторы, разделяемые типы и типы значений, допускающие значение NULL. Статические классы, доступ к геттеру и сеттеру, делегаты и вывод делегатов были обновлены, и код стал намного более читабельным.С# версии 3.0
C# версии 3.0 был выпуском, который действительно зарекомендовал себя как универсальный и современный язык программирования с несколькими важными новыми функциями, включая анонимные типы, деревья выражений и неявно типизированные локальные переменные. Именно здесь была заложена основа для превращения C# в гибридный язык, не только объектно-ориентированный, но и функциональный.С# версии 4.0
Версия 4.0 C# оказала меньшее влияние, чем предыдущая версия, с меньшим количеством новых функций, включая динамическое связывание и общие ковариантные и контравариантные методы. Также было введено ключевое слово «динамический», которое позволило программистам создавать конструкции аналогично тому, что вы можете делать с динамическими языками.С# версии 5.0
Выпущенная вместе с новой версией Visual Studio в 2021 году, версия C# 5.0, в первую очередь, включала новую концепцию асинхронной модели и модели ожидания для асинхронного программирования.С# версии 6.0
Новые функции, включенные в C# версии 6.0, были менее впечатляющими и новаторскими, чем в предыдущих выпусках, но в целом сделали кодирование на языке программирования C# намного более продуктивным. Такие функции, как автоматические инициализаторы свойств, статический импорт, интерполяция строк и фильтры исключений, сделали код более кратким и читабельным, что повысило его популярность среди начинающих программистов.С# версии 7.0
Новые функции, выпущенные в 2017 году в C# версии 7.0, продолжили тенденцию к тому, чтобы сделать код еще чище и аккуратнее, чтобы его было легче читать и писать. К ним относятся сопоставление с образцом, выходные переменные, локальные функции и выражения throw, расширяющие возможности использования языка.С# версии 7.1
В этом обновлении версии 7.0 начали выпускаться «точечные выпуски», а также введено новое поведение компилятора и три новых языковых выпуска.С# версии 7.2
Это обновление добавило в язык еще несколько новых функций, таких как неконечные именованные аргументы и выражения с условными ссылками.С# версии 7.3
В выпуске C# версии 7.3 было две ключевые темы с представленными функциями; сделать безопасный код таким же производительным, как и небезопасный, а затем просто внести небольшие улучшения в старые функции. Некоторые из этих функций, связанных с более безопасным кодом, включают возможность доступа к фиксированным полям без закрепления, использование более общих ограничений и переназначение локальных переменных ref.С# версии 8.0
Этот выпуск специально предназначен для .NET Core с огромным количеством новых функций, включая несколько улучшений сопоставления шаблонов, статические локальные функции и асинхронные потоки.С# версии 9.0
Самая последняя версия языка C# вышла в 2019 году вместе с .NET 5. Она включает в себя новые усовершенствования, такие как возможность упростить операторы верхнего уровня, расширенные возможности сопоставления с образцом и добавление функций в генераторы кода.ЧТО МОЖНО СДЕЛАТЬ С ПОМОЩЬЮ C#?
Хотя существуют определенные типы программирования, которые лучше всего подходят для языка программирования C#, диапазон различных применений C# огромен. Его универсальность обусловлена тем, что это язык программирования общего назначения, а также тем, что его можно запускать на платформах с открытым исходным кодом.Вот некоторые из наиболее распространенных вещей, которые вы можете делать с помощью C#:
- Создание и разработка веб-сайтов на платформе .NET
- Создание веб-приложений
- Создание приложений специально для операционных систем Windows
- Разработка серверных сервисов
- Создание приложений для устройств iOS, Android и Windows
- Написание кода для веб-сервисов и веб-API
- Создание видео, мобильных и компьютерных игр
- Создание программного обеспечения для блокчейнов и технологии распределенного реестра
- Написание программ для IoT-устройств
Чтобы начать использовать C#, вам потребуется как интегрированная среда разработки, так и платформа Windows .NET Framework или другая совместимая платформа с открытым исходным кодом. Также можно просто начать писать код в текстовом редакторе, но запустить его без компилятора не получится.
Начинайте медленно, когда дело доходит до изучения основ C#, и постепенно наращивайте свои знания по мере обретения уверенности. Сообщество разработчиков, использующих этот язык, очень велико, поэтому новичкам, которым нужна помощь, доступно много поддержки.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ О C# / сишарп
В чем разница между С# и С++?
Ключевое различие между C# и C++ заключается в том, что C# — это компонентно-ориентированный и объектно-ориентированный язык, а C++ — всего лишь объектно-ориентированный язык. С# также не использует указатели, а С++ может использовать их в любом месте кода, а С# автоматически обрабатывает управление памятью, тогда как при программировании на С++ с памятью приходится работать вручную.Что такое конструктор в C#?
В C# конструктор вызывается всякий раз, когда создается класс или структура. Это позволяет вам ограничивать создание экземпляров и устанавливать значения по умолчанию, а это означает, что код является гибким и легко читаемым.Что такое полиморфизм в C#?
Полиморфизм в C# — это способность различных типов объектов в коде предоставлять уникальные интерфейсы, позволяющие использовать различные реализации методов, переопределяя методы в производных классах. Чаще всего он используется, когда поведение объекта при ответе на вызов членов его метода определяется на основе его типа во время выполнения.Что такое пространство имен в C#?
Пространство имен в C# — это «именованное пространство», в котором находится приложение. Они часто используются для предоставления контекста компилятора кода для именованной информации в программе, написанной на C#, а также для гарантии того, что созданное вами приложение не занимает никаких имен в существующих приложениях.Необходимо найти IT специалиста менее чем за 14 дней, тогда Добро пожаловать в наше Кадровое агентство IT and Digital.
170 000+ база резюме it специалистов
5 500+ вакансий успешно закрыто
hr@itanddigital.ruПомощники для IT рекрутеров в проведения интервью с кандидатами!
Тщательно отобранные 100+ вопросов в каждом направлении и все твои. Теперь все самое главное под рукой!Забрать гайды