C# 7.1 به همراه به روز رسانی سوم VS 2017 ارائه شدهاست و اگر در ابتدای کار سعی کنید برای مثال یکی از ویژگیهای جدید C# 7.1، مانند static
async Task Main را توسط آن آزمایش کنید، خطای کامپایل برنامه را دریافت میکنید. علت اینجا است که این نگارش خاص حتما نیاز به تنظیمات ویژهای را جهت فعالسازی دارد.
فعالسازی کامپایلر C# 7.1 در VS 2017
ابتدا مسیر Visual Studio -> Build tab -> Advanced را طی کنید:
پس از کلیک بر روی دکمهی Advanced، نیاز است C# 7.1 را انتخاب نمائید:
سؤال: چرا چنین مشکلی با نگارشهای پیشین زبان سیشارپ در ویژوال استودیو وجود نداشت؟
تابحال زبان سیشارپ نگارش minor نداشتهاست. همانطور که در تصویر فوق ملاحظه میکنید، گزینهی پیشفرض زبان مورد استفاده بر روی C# latest
major version قرار دارد. این گزینه به معنای انتخاب نگارش 7.0، در این لیست است و نه 7.1. در اینجا major به نگارش 7.0 اشاره میکند و یا نگارشهای 8.0، 9.0 و پس از آن (در صورت ارائه و نصب به روز رسانیها). به همین جهت است که نمیتوان برای مثال static async Task Main را به صورت پیش فرض و با اعمال آخرین به روز رسانیها کامپایل کرد. برای رفع این مشکل یا میتوان برای مثال C# 7.1 را مستقیما انتخاب کرد و یا میتوان «C# latest
minor version» را انتخاب کرد که این مورد گزینهی بهتری است نسبت به حالت C# latest
major version و دقیقا به C# 7.1 و یا نگارشهای پس از آن اشاره میکند.
انتخاب زبان در پروژههای NET Core.
روش فوق با تمام نگارشهای NET. کار میکند. اما با توجه به اینکه یک چنین گزینههایی برای مثال در VSCode وجود ندارند و یا برنامههای NET Core. را میتوان صرفا از طریق خط فرمان، ایجاد، کامپایل و اجرا کرد، در این نوع پروژهها برای انتخاب زبان باید به صورت ذیل عمل نمود:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<!--
<LangVersion>7.1</LangVersion>
-->
</PropertyGroup>
</Project>
در اینجا گزینهی LangVersion را یا میتوان به 7.1 تنظیم کرد و یا بهتر است مقدار آنرا مساوی latest قرار داد تا همواره به آخرین کامپایلر نصب شدهی توسط SDK اشاره کند.