دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • مرداد

جلسه ۲۸ : Tuple در #C

  • دسته‌بندی‌ها :
جلسه ۲۸ : Tuple در #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبلی با نحوه Initialize کردن انواع اشیاء و مجموعه ها در #C آشنا شدید ، در بخش بعدی قصد داریم شما را با Tuple در زبان #C و Tuples های تودرتو در سی شارپ آشنا کنیم. تا پایان این جلسه همراه ما باشید.

       

      Tuple :

      کلاس Tuple در دات نت فریم ورک ۴٫۰ معرفی شد. Tuple محدوده یک ساختار داده است که حاوی توالی عناصر مختلف داده ها می باشد . مواقعی از آن استفاده می کنیم که شما می خواهید یک ساختار داده (data structure) را برای نگه داشتن یک شی بهمراه پراپرتی هایش داشته باشید، اما نمی خواهید برای آن یک نوع جداگانه ایجاد کنید.

      ساختار کلی :

      مثال : 

      مثال زیر یک tuple با سه عنصر ایجاد می کند:
      مثال : 

      در مثال بالا، یک نمونه از Tuple ایجاد کردیم که دارای یک رکورد از یک person است. یک نوع برای هر عنصر مشخص و مقادیر را به سازنده منتقل کردیم. مشخص کردن نوع هر عنصر باعث زحمت است. #C با استفاده از کلاس Tuple یک نمونه از آن را بدون مشخص کردن نوع هر عنصر ایجاد می کند، همانطور که در زیر نشان داده شده است.

      مثال : 

      یک tuple می تواند حداکثر هشت عنصر را شامل شود. و در غیر اینصورت خطای کامپایلر برگشت داده می شود.
      مثال : 

      دسترسی به عناصر Tuple :

      عناصر یک tuple را می توان با پراپرتی <Item <elementNumber مشاهده کرد. به عنوان مثال Item1، Item2، Item3 و … تا Item7 . پراپرتی Item1 عنصر اول را باز می کند، Item2 عنصر دوم و … . آخرین عنصر (عنصر هشتم) با استفاده از پراپرتی Rest بدست می آید.
      مثال : 

       

      Tuples های تودرتو :

      اگر می خواهید بیش از هشت عنصر را در یک دسته قرار دهید، می توانید این کار را با قرار دادن یک شی دیگر به عنوان عنصر هشتم انجام دهید. و با استفاده از پراپرتی Rest می توان به عناصر |آن دسترسی داشت.

      برای دسترسی به عنصر tuple داخلی ، از پراپرتی <Rest.Item1.Item<elelementNumber استفاده منی کنیم.

      مثال : 

      البته می توانید شیء تودرتو را در هر جایی از توالی وارد کنید. ولی، توصیه می شود که در انتهای دنباله قرار گیرد،

      مثال : 

       

      استفاده از Tuple به عنوان پارامتر متد :

      یک متد می تواند دارای پارامتر tuple باشد. مانند زیر :

      مثال : 

       

      استفاده از Tuple به عنوان بازگشتی متد :

      یک متد می تواند دارای مقدار بازگشتی tuple باشد. مانند زیر :

      مثال : 

       

      نکاتی در مورد Tuple :

      Tuples را می توان در سناریوهای زیر استفاده کرد:

      1. وقتی می خواهید مقادیر چندگانه را از یک متد بدون استفاده از پارامترهای ref و یا out استفاده کنید.
      2. وقتی میخواهید چندین مقدار را به یک متد از طریق یک پارامتر واحد منتقل کنید.
      3. وقتی میخواهید یک رکورد پایگاه داده یا برخی مقادیر را به طور موقت بدون ایجاد یک کلاس جداگانه نگه دارید.

       

      محدودیت های Tuple :

      1. Tuple یک نوع ارجاعی است . در حافظه heap نگهداری می شود و می تواند عملیات فشرده CPU را انجام دهد.
      2. Tuple شامل ۸ عنصر است. اگر نیاز به ذخیره عناصر بیشتری دارید، باید از Tuple های تودرتو استفاده کنید که برای درک بهتر کدها بهتر است از عنصر آخر استفاده کنید .
      3. می توان با استفاده از پراپرتی <Item <elementNumber به عناصر Tupleدسترسی داشت که منطقی نیست .

       

      #C در ورژن ۷٫۰ خود ValueTuple را برای غلبه بر محدودیت های Tuple ارائه داد و همچنین کار با Tuple را هم ساده تر نمود .
      در این بخش با Tuple در #C آشنا شدید ، در بخش بعدی قصد داریم شما را با ValueTuple در زبان #C آشنا کنیم.
      QR:  جلسه ۲۸ : Tuple در #C
      به اشتراک بگذارید