گاهی اوقات به Property های تو در تو نیاز داریم، به معنی دیگر دسترسی به Property یک Propperty دیگر. دسترسی به این ویژگی در نسخه های قبلی #C امکان پذیر بود ولی کدی که باید نوشته میشد تا حدودی تمیز نبود.
فرض کنید برای دسترسی به Property تو در تو باید به این شکل کد نوشته میشد:
if (employee is { Address: { City: "Tehran" } })
دقیقا C#10 در این مورد بهینه شده و بجای اینکه شما چندین بار از براکتها استفاده کنید میتونید کد رو بصورت زیر دهید:
if (employee is { Address.City: "Tehran" })
شاید تابحال برای شما این سوال مطرح شده که آیا راهی برای این هست که بتوان استفاده از Using های متوالی و تکراری را در جایی ذخیره کرد و دیگر آن ها را در فایلهای متعدد تکرار نکرد؟
باید گفت به لطف وجود نسخه جدید NET. این ویژگی اضافه شده.
اگر به مثال زیر توجه کنید، لیست Using ها زیاد هستند
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.UI; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks;
کلمه کلیدی جدیدی که در این نسخه معرفی شده استفاده از global هست. با استفاده از global، شما میتوانید از using های که بصورت global اضافه میشوند استفاده کنید. پیشنهاد میشود که یک فایل جداگانه ایجاد کنید و لیست using های خود را در آن import کنید، به عنوان مثال usings.cs
global using Microsoft.AspNetCore.Builder; global using Microsoft.AspNetCore.Hosting; global using Microsoft.AspNetCore.HttpsPolicy; global using Microsoft.AspNetCore.Identity; global using Microsoft.AspNetCore.Identity.UI; global using Microsoft.EntityFrameworkCore; global using Microsoft.Extensions.Configuration; global using Microsoft.Extensions.DependencyInjection; global using Microsoft.Extensions.Hosting; global using System; global using System.Collections.Generic; global using System.Linq; global using System.Threading.Tasks;
بعد از تعریف using ها در کلاس شما، اولین چیزی که نوشته میشود تعریف namespace است. و بعد از آن تعریف کلاس شما.
namespace Blog { public class Article { //پراپرتی ها و صفات کلاس } }
در نسخه جدید، شما میتواند براکتها را حذف کنید و بصورت first level از آن استفاده کنید.
namespace Blog; public class Article { //پراپرتی ها و صفات کلاس }