در دنیای توسعه نرمافزار، نوشتن کدی که هم خوانا باشد و هم قابل نگهداری، یک هنر است. یکی از ویژگیهایی که زبان #CSharp در اختیار ما گذاشته، قابلیت Deconstruction است؛ راهی هوشمند برای استخراج مقادیر از توابع، اشیاء، رکوردها و حتی دیکشنریها.
👨💻 Deconstruction چیست؟ به جای نوشتن چند خط برای استخراج مقادیر از Tuple یا Propertyهای یک شیء، با Deconstruction میتوانیم همه چیز را در یک خط انجام دهیم:
var (city, population, area) = QueryCityData("New York City");
📦 کجا میتوان استفاده کرد؟
Tupleها
Recordها
کلاسهای شخصیسازی شده با متد Deconstruct
حتی KeyValuePair در Dictionaryها
🎯 مزایا
خوانایی بهتر کد
نگهداری سادهتر
تمرکز روی مقادیر مورد نیاز (Discards با _)
🚀 نمونه کاربردی: اگر تنها به برخی مقادیر Tuple نیاز دارید، کافیست از _ برای نادیده گرفتن سایر عناصر استفاده کنید:
var (_, _, _, pop1960, _, pop2010) = QueryCityDataForYears("NYC", 1960, 2010); Console.WriteLine($"Population change: {pop2010 - pop1960:N0}");
🧩 برای کلاسهای خودتان هم میتوانید متد Deconstruct بنویسید تا قابلیت تجزیهپذیری داشته باشند. حتی با Extension Method میتوان این ویژگی را به کلاسهایی افزود که خودتان ننوشتهاید!