Software Philosophy: post #2386 — TG.ME

دی‌کانستراکشن تاپل (Tuple Deconstruction) در سی‌شارپ

#csharp_for_beginners

قابلیت دی‌کانستراکشن تاپل (Tuple Deconstruction) از نسخه سی‌شارپ ۷.۰ به زبان سی‌شارپ اضافه شد. این قابلیت به شما اجازه می‌دهد اعضای یک Tuple را به‌طور هم‌زمان در چند متغیر مستقل قرار دهید. به این ترتیب دیگر نیازی نیست برای دسترسی به هر عضو از Item1، Item2 یا نام اعضای Tuple استفاده کنید و می‌توانید تمام مقادیر را تنها با یک دستور استخراج کنید.

به عنوان مثال، فرض کنید متد یک Tuple شامل اطلاعات یک حیوان خانگی را برمی‌گرداند:

(string Type, string Name, int Height, int Age, string Color) GetPet()
{
return ("Dog", "Max", 60, 4, "Brown");
}



می‌توان تمام مقادیر بازگشتی را به‌صورت هم‌زمان دریافت کرد:

(string type, string name, int height, int age, string color) = GetPet();



در این مثال، هر عضو Tuple مستقیماً در متغیر متناظر خود قرار می‌گیرد.

تعیین صریح نوع متغیرها
در این روش، نوع هر متغیر به‌صورت صریح داخل پرانتز نوشته می‌شود.

(string type, string name, int height, int age, string color) = GetPet();


مقدار اول در type
مقدار دوم در name
مقدار سوم در height
مقدار چهارم در age
مقدار پنجم در color

نادیده گرفتن اعضای غیرضروری با Discard

اگر به همه اعضای Tuple نیاز نداشته باشید، می‌توانید از Discard که با علامت _ نمایش داده می‌شود استفاده کنید.

(string type, _, int height, _, string color) = GetPet();



مقدار اول در type ذخیره می‌شود.
مقدار دوم نادیده گرفته می‌شود.
مقدار سوم در height قرار می‌گیرد.
مقدار چهارم نادیده گرفته می‌شود.
مقدار پنجم در color ذخیره می‌شود.

استفاده از _ باعث می‌شود مقدار مربوطه دریافت شود، اما در هیچ متغیری ذخیره نشود.

قوانین و محدودیت‌های دی‌کانستراکشن تاپل

هنگام استفاده از دی‌کانستراکشن تاپل باید به چند نکته توجه کنید:

- تعداد متغیرها باید با تعداد اعضای Tuple برابر باشد.

- اگر Tuple پنج عضو داشته باشد، باید در سمت چپ نیز پنج متغیر یا Discard (_) وجود داشته باشد.

نمونه صحیح:

(var type, var name, var height, var age, var color) = GetPet();


🔗 ویدئو را در این لینک می‌توانید می‌توانید مشاهده کنید.

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

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

______
GeeksforGeeks
C# | Deconstructors with Tuples - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
👍1
August 1, 2026 1.2K 3