TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2352 1.3K
تاپل‌ها در سی‌شارپ

#csharp_for_beginners

در زبان برنامه‌نویسی سی‌شارپ، از نسخه‌های جدید‌تر مفهومی با نام تاپل‌ها معرفی شده است؛ این امکان فراهم می‌کند که چند مقدار مرتبط را به‌صورت کم‌حجم و منسجم در کنار هم نگه‌دارید. به‌طور خاص، این مقاله به نوع داده‌ای به نام «تاپل مقدار» (value-tuple) می‌پردازد که در سند رسمی مایکروسافت تحت عنوان «Tuple types (C# reference)» معرفی شده است.

تعریف و سینتکس
تاپل‌ها در سی‌شارپ راهی برای گروه‌بندی چند متغیر مرتبط در یک ساختار سبک است. به‌عبارت دیگر، به جای آنکه چند متغیر جداگانه بازگردانده شوند، می‌توانید آن‌ها را در یک واحد بازگردانید.
مثال ابتدایی:

(double, int) t1 = (4.5, 3);
Console.WriteLine($"Tuple with elements {t1.Item1} and {t1.Item2}.");


برابری (Tuple equality)ها چگونه مقایسه می‌شوند

تاپل‌ها از عملگرهای == و != پشتیبانی می‌کنند؛ این مقایسه اعضای متناظر (به ترتیب) را با اپراتور مقایسه انجام می‌دهد. نام فیلدها در مقایسه دخیل نیستند؛ به همین دلیل دو تاپل با نام‌های متفاوت اما همان ترتیب و مقادیر، برابر در نظر گرفته می‌شوند.

مثال صفحه

(int a, byte b) left = (5, 10);
(long a, int b) right = (5, 10);
Console.WriteLine(left == right); // True


نام‌گذاری فیلدهای تاپل (Tuple field names)، جزئیات مهم

نحوهٔ تعیین نام فیلدها
نام فیلدها را می‌توان صریحاً هنگام مقداردهی یا در تعریف نوع تاپل مشخص کرد:

var t = (Sum: 4.5, Count: 3);
Console.WriteLine($"Sum of {t.Count} elements is {t.Sum}.");

یا:

(double Sum, int Count) d = (4.5, 3);


تاپل‌های زبان بر پایهٔ System.ValueTuple هستند؛ یعنی نوع مقدار (value type) و اعضای آن به‌صورت فیلدهای عمومی پیاده‌سازی شده‌اند. نتیجهٔ مستقیم این پیاده‌سازی این است که تاپل‌ها mutable value types هستند، یعنی می‌توان مقادیر فیلدهای‌شان را تغییر داد.

🔗 مطلب کامل را در این لینک می‌توانید مطالعه کنید.

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

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

______
Docs Tuple types - C# reference C# tuples: lightweight data structures that you can use to group loosely related data elements. Tuples introduce a type that contains multiple public members.
  • 👍 5
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 →