نحوه استفاده از نوع جدید Record در سی شارپ 9
آموزش سی شارپ

نحوه استفاده از نوع جدید Record در سی شارپ 9

نوع جدیدی که در سی شارپ 9 معرفی شد ، نوع Record هست که قسمتی از آن بر اساس init-only که در این لینک معرفی  کردیم کار می کند. قبل از این که ادامه این مطلب رو مطالعه کنید حتما در مورد Immutable و init-only مطالعه کنید.

اصلا چرا از Immutable استفاده می کنیم و چرا تیم توسعه دات نت نحوه تعریف آنها را این همه راحت کرده؟

شئ immutable : شیی هست که پس از نمونه سازی اولیه ، وضعیت آن غیر قابل تغییر باشد و کلاسی که شیی های آن چنین رفتاری داشته باشند را immutable می گویند.

این قابلیت را از نسخه اول دات نت داشتیم و نوع داده ای رشته (string) رفتاری این چنینی دارد و بعد از تعریف یک متغیر از نوع رشته ، با هر تغییر آن متغیر یک خانه جدید حافظه به آن اختصاص داده می شود و خانه قبلی توسط Garbag Collector از بین خواهد رفت.

مزایای استفاده از Immutable ها:

آنها اصطلاحا thread-safe هست و توسعه دهنده می تواند به صورت همزمان و موازی بر روی این نوع های داده ای کار کند.چرا که به صورت read-only تعریف شده اند.اشیا immutable غیر قابل تغییر هستند و با ارسال آنها به هر متدی می توان اطمینان داشت که بعد از اتمام کار آن متد تغییری در وضعیت و داده های آن شی ایجاد نشده است. و همین امر باعث شده است که بتوانیم از حافظه به صورت بهینه تر و مدیریت شده استفاده کنیم.

فرض کنید یک شی مقداری را در خود نگه داری می کند که قرار است در جاهای مختلفی استفاده شود . وقتی به صورت read-only تعریف بشه در یک  مکان حافظه قرار می گیرد و این ادرس حافظه به جاهایی که نیاز به این شی دارند داده می شود و بارها و بارها از این شی استفاده می شود و مشکلی برای هدر رفات حافظه به وجود نمی آید و همین طور پروژه های ما دچار باگ کمتری می شوند.

 

نویسنده

یاسر دهقان

تاریخ نگارش
9 خرداد 1402
18 مقاله این نویسنده