Tuple ها و کاربرد های آن در سی شارپ
۲ دیدگاه
در حال حاضر خالی است: ۰ ﷼
اغلب مواردی حین نوشتن Method ها وجود دارد که باید تابع بیش از یک مقدار برگرداند. در این شرایط گاهی می توان از Array ها استفاده کرد. (برای آشنایی با Array ها مطلب: درک Array در سی شارپ را مطالعه نمایید). ولی اگر نوع داده های برگردانده شده متفاوت باشند، Array ناکارآمد خواهد بود. همچنین استفاده از Array می تواند به افت خوانایی دستورات منجر شود. بنابراین راهکار مناسب تر می تواند ایجاد یک Data Type اختصاصی باشد. در این حالت Data Type تعریف شده اکثرا فقط برای مقدار برگردانده شده کاربرد دارد. بنابراین ما یک نوع جدید ایجاد کرده ایم که عملا در کل برنامه کارایی ندارد. برای رفع این مشکل، ساختار جدیدی در زبان سی شارپ معرفی شده است. در ادامه با معرفی Tuple ها و کاربرد های آن در سی شارپ، راهکار مناسبی برای شرایطی از این دست را خواهید آموخت.
Tuple یک بسته از دو یا چند Field می باشد. عملا از Tuple برای نگهداری دیتا از آن استفاده می شود. شما می توانید به جای تعریف class یا struct برای ساختار خروجی توابع، از Tuple استفاده نمایید. (برای آشنایی با کلاس ها مطلب: Class ها در سی شارپ را مطالعه نمایید). (برای آشنایی با struct ها مطلب: struct ها در سی شارپ را مطالعه کنید). از مزایای استفاده از Tuple می توان به موارد زیر اشاره کرد:
این مزایا در کنار افزایش خوانایی دستورات می توانند بسیار راهگشا باشند. در عین حال شما باید از محدودیت هایی که در Tuple وجود دراد آگاه باشد. از محدودیت های موجود در Tuple ها می توان به این موارد اشاره نمود:
دقت کنید، هرگز Tuple ها نمی توانند جایگزین کاملی برای class ها و یا struct ها باشند.
Tuple ها در زبان سی شارپ به دو نوع کلی تقسیم می شوند:
به سادگی مانند هر متغییر دیگرکافی است یک متغییر از نوع Tuple تعریف کنید. در این صورت عملا یک Tuple تعریف کرده اید. برای اینکه ساختار تعریف شده Named Tuple باشد، برای هر فیلد نامی مشخص تعریف کنید. در این صورت می توانید به فیلدها از طریق نام دسترسی داشته باشید.
به مثال زیر توجه کنید:
Person (string Name, int Age, Char Gender);
Person = ( “Milad”, ۲۶, ‘M’ );
//یا
var Person = ( Name : “Milad”, Age : ۲۶, Gender : ‘M’ );
//استفاده از فیلد ها پس از تعریف
Console.WriteLine($” {Person.Name} is {Person.Age} years old.”);
برای اینکه ساختار تعریف شده Unnamed Tuple باشد، لازم نیست اسمی برای فیلدها در نظر بگیرید. در این صورت برای دسترسی به فیلدها باید از اسامی پیش فرض استفاده کنید.
به مثال زیر توجه کنید:
var Person = ( “Milad”, ۲۶, ‘M’ );
//استفاده از فیلد ها پس از تعریف
Console.WriteLine($” {Person.Item1} is {Person.Item2} years old.”);
در این حالت، اسامی پیش فرض، Item1، Item2، Item3 و … خواهند بود.
برای درک بهتر روش تخصیص نام به فیلدهای Tuple مطلب: عملکرد Tuple Projection Initializer ها در دات نت را مطالعه نمایید.
از Tuple ها می توانید به عنوان:
استفاده کرد
ممنون از توضیح کاملتون🙏🌹
درود بر شما. خواهش میکنم