در مطلب « C# 7 - Tuple return types and deconstruction » با نوعهای جدید بازگشتی Tuple در C# 7.0 آشنا شدیم. در C# 7.1 تشخیص نام اعضای Tuple تعریف شده بهبود یافته و از این لحاظ شبیه به anonymous types شدهاست. مفهوم «Name Inference» یا «حدس زدن نامها» را با یک مثال بهتر میتوان توضیح داد. string name = "User 1";
int age = 20;
var personTuple = (name, age);
Console.WriteLine(personTuple.Item1); // User 1
Console.WriteLine(person ...
Literal چیزی است مانند null و در حقیقت یک واژهی کلیدیاست که دارای مقداری مشخص میباشد. واژه کلیدی default نیز مفهوم مشابهی را به همراه دارد. تا پیش از C# 7.1 برای دسترسی به مقدار پیشفرض value types به صورت ذیل عمل میشد: int a = default(int);
در اینجا مقدار پیشفرض نوعی که بین پرانتزها ذکر میشود، بازگشت داده خواهد شد. اگر int ذکر شود، صفر و اگر bool ذکر شود، مقدار fa ...
پس از فعالسازی C# 7.1 ، اولین ویژگی جدید C# 7.1، متدهای Main برنامههای کنسول (و همچنین WPF و WinForms) هستند که اینبار قابلیت تعریف async را نیز دارند.
نحوهی کار با متدهای async، در متدهای Main نگارشهای پیش از C# 7.1
برای کار با متدهای Async نیاز است از واژهی کلیدی await استفاده شود و با قید این واژه، ضروری است واژهی کلیدی async نیز به امضای متد دربرگیرندهی عملیات اضافه گردد؛ اما در نگارشهای پیشین زبان #C ...
C# 7.1 به همراه به روز رسانی سوم VS 2017 ارائه شدهاست و اگر در ابتدای کار سعی کنید برای مثال یکی از ویژگیهای جدید C# 7.1، مانند static async Task Main را توسط آن آزمایش کنید، خطای کامپایل برنامه را دریافت میکنید. علت اینجا است که این نگارش خاص حتما نیاز به تنظیمات ویژهای را جهت فعالسازی دارد.
فعالسازی کامپایلر C# 7.1 در VS 2017
ابتدا مسیر Visual Studio -> Build tab -> Advanced را طی کنید:
...