Обложка канала

.NET Разработчик

Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин

.NET Разработчик

4 года назад
Открыть в
День 1445. #МоиИнструменты Используем Новинки Языка на Старых Платформах Сегодня порекомендую вам интересное видео от Ника Чапсаса об использовании новейших функций языка C# в старых версиях платформы, например, в .NET Framework. На самом деле, все функции можно использовать практически «из коробки», просто изменив версию языка на 11. Да, Visual Studio не даст вам этого сделать так просто, потому что она автоматом определяет версию языка по версии фреймворка. Но можно вручную отредактировать файл .csproj, указав нужную версию языка в блоке компиляции:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <PlatformTarget>AnyCPU</PlatformTarget>
  …
  <LangVersion>11.0</LangVersion>
</PropertyGroup>

Только одно это действие уже позволит вам писать, например, top-level statements (т.е. обойтись без класса Program). Добавить другие функции чуть сложнее. Например, чтобы использовать init-свойства, нужно добавить пустой класс IsExternalInit:
namespace System.Runtime.CompilerServices
{
  public static class IsExternalInit { }
}

Однако и эту работу можно облегчить, просто добавив NuGet-пакет PolySharp. Все подробности в новом видео Ника https://youtu.be/RgKa-tjnUMA