تبلیغات

اورلود کردن ایندکسرها در سی شارپ (Overloading of Indexers)

ایندکسرهای سی شارپ را نیز می‌توان همانند متدها اورلود (Overload) کرد. حالا این یعنی چه؟! یعنی اینکه بتوانیم چندین نوع ایندکسر در کلاس تعریف کنیم! همانند متدها که می‌توان چندین نوع را با یک نام تکراری اما با پارامترهای مختلف تعریف کرد. مثلا تصور کنید که یک ایندکسر برای وردی‌های int و یک ایندکسر برای ورودی‌های string تعریف کنید.

مثال 1

کد زیر را در نظر بگیرید:

دو ایندکسر تعریف شده است که یکی از آنها یک ورودی از نوع int دریافت کرده و دیگری یک ورودی از نوع float! هردویشان نیز خروجی string برمی‌گردانند.

در کد بالا یک آرایه‌ی رشته‌ای داخل کلاس تعریف شده است که سه خانه دارد. در حالتی که ایندکسر int دریافت کند، آن را را برای ایندکس همین آرایه استفاده کردیم؛ ولی اگر float دریافت کند، عدد یک را برای ایندکس آرایه استفاده کردیم! البته این یک مثال است و اجباری نیست که حتی اصلا منطق دو ایندکسر شبیه به هم باشد و می‌توانند برای خودشان کار جداگانه‌ای انجام دهند.

از کلاس بالا برای مثال بصورت زیر استفاده کردیم:

خروجی:

مثال 2

اجازه دهید در مثال زیر، برای یکی از ایندکسرها تنها از get استفاده کنیم (یعنی فقط خواندنی شود) اما برای ایندکسر دیگر، هردو را خواهد داشت:

جالب اینکه در ایندکسر دوم، اصلا با پارامتر ورودی کاری نداریم و همواره یک خروجی برمی‌گردانیم 😀 (البته این مثمال کاربردی نیست و توضیه نمی‌شود و صرفا جهت درک آن گفته شد)

برای مثال بصورت زیر از کلاس بالا استفاده می‌کنیم:

خروجی این کد:

درس قبلی (ایندکسرها)
تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه