#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
______