TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2195 3.65K
C#12 Preview!

سی‌شارپ آپدیت‌های خود را در ادامه فعالیت‌هایش جهت ساده‌تر کردن کد‌ها و بهبود در فضاهای اشغال شده توسط کد ارائه می‌کند.

برخی از ویژگی های C# 12 در preview ها معرفی شده‌اند و می‌توانید این ویژگی‌ها را با استفاده از Visual Studio 17.6 Preview  یا NET 8 preview.  امتحان کنید.

مواردی که در C#12 Preview معرفی شده‌اند:

۱- ویژگی Primary constructors برای کلاس‌ها و ساختارهای غیر رکورد. 
شما اکنون می‌توانید primary constructors را در هر کلاس و ساختاری ایجاد کنید. Primary constructors دیگر محدود به record types نیستند. پارامترهای primary constructor در scope بدنه کلاس هستند.

با استفاده از (...)this داخل کلاس، می‌توانید از قابلیت primary constructor استفاده کنید.

مثال:‍‍‍‍‍‍‍
Public Student(int id, string name) : this(id, name, Enumerable.Empty<decimal>()) { }

اضافه کردن primary constructor به یک کلاس، از تعریف ضمنی constructor بدون پارامتر جلوگیری می‌کند.

۲- مقدار پیش فرض برای پارامترهای عبارت lambda
سی‌شارپ قبلا این امکان را فراهم کرده بود که برای پارامترهای ورودی متد مقادیر پیش‌فرض تعریف کنید. این امکان برای lambda نیز فراهم شده است. مقدار پیش‌فرض برای پارامترهای عبارت lambda به شما این امکان را می‌دهد که بتوانید پارامترهایی را که در عبارت lambda استفاده می‌شوند، با مقدار پیش‌فرض مقدار‌دهی کنید.

۳- استفاده از alias برای هر نوعی
در ورژن‌های قبلی سی‌شارپ این امکان وجود داشت که شما هنگام استفاده از یک کلاس، به جای استفاده مستقیم از آن کلاس، در قسمت using ها، کلاس مورد نظر خود را به صورت مستقیم using کنید و به آن نامی دلخواه بدهید، سپس داخل کد خود برای دسترسی به کلاس مورد نظر از آن نام دلخواه که موقع using معرفی کرده‌اید استفاده کنید.

در این ورژن، شما می‌توانید از دستورالعمل using alias برای  هر نوعی، نه فقط named types، استفاده کنید. این بدان معناست که شما می‌توانید alias های semantic برای tuple types، array types، pointer types یا دیگر unsafe types ایجاد کنید.

مثال:
using Measurement = (string Units, int Distance);


🔗 نسخه کامل این مقاله را ‌می‌توانید در اینجا مطالعه کنید.

🔗 لینک مقاله در ویرگول

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#نگار_قاسمی (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

______
  • 👍 19
  • ❤ 5
  • 🔥 4
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →