"> Indexer ها در سی شارپ | آموزش سی شارپ | ام اس پی سافت

Indexer ها در سی شارپ

Indexer

در این مقاله، مفاهیم پایه­ ی indexer ها و نحوه­ ی استفاده از Indexer ها در سی شارپ را مورد بحث قرار می­دهیم.تا پایان مقاله همراه ما باشید.

Indexerها در  .NET

Indexer به کلاس ها اجازه می دهد تا به شیوه ای آشکارتر مورد استفاده قرار بگیرند.

سی شارپ مفهومی جدید تحت عنوان Indexer ها ارائه می دهد که اجازه می دهد کلاس ها یا ساختارها به عنوان آرایه استفاده شوند.

indexerها معمولا با عنوان آرایه های هوشمند در سی شارپ شناخته می شوند.

یک indexerیا خاصیت index شده ، یک خاصیت کلاس است که شما را قادر می سازد تا به یک متغیر عضو یک کلاس یا ساختار با استفاده از ویژگی های یک آرایه دسترسی پیدا کنید.

Indexer

تعریف یک indexerامکان ایجاد یک کلاس را می دهد که می تواند به آیتم های خود اجازه ی دسترسی مانند یک آرایه را بدهد.

نمونه های آن کلاس می توانند با استفاده از عملگر دسترسی به آرایه [] در دسترس قرار بگیرند.

ایجاد یک Indexer

<modifier> <return type> this [argument list]  
{  
get  
{  
// your get block code  
}  
set  
{  
// your set block code  
}  
}  

در کد فوق:

<modifier>

می تواند private ، public، protected  یا internal باشد.

<return type>

می تواند هر نوع معتبر سی شارپ باشد.

this

this یک کلیدواژه ی خاص درسی شارپ برای نشان دادن شیء کلاس فعلی است.

[argument list]

formal argument list پارامترهای indexer را مشخص می کند.

نکات مهم جهت به خاطر سپاری در رابطه با indexerها:

  • indexerها همواره با کلیدواژه ی this ایجاد می شوند.
  • خاصیت پارامتری، indexerنامیده می شود.
  •  indexerها از طریق accessorهای get و set برای عملگر [] پیاده سازی می شوند. [ accessorها متدهایی هستند که برخی اطلاعات در مورد یک شیء را به ما می دهند. ]
  •  دسترسی های پارامتر refو out در indexer مجاز نیستند.
  •  فهرست رسمی پارامتر مربوط به یک indexer مطابق با آنچه یک متد دارد است و حداقل یک پارامتر باید مشخص شود.
  • indexer یک عضو نمونه است، لذا نمی تواند static / ایستا باشد اما property / خاصیت می تواند static باشد.
  • indexerها بر روی گروهی از عناصر مورد استفاده قرار می گیرند.
  •  indexer توسط امضایش شناخته می شود در حالیکه خاصیت توسط نامش شناخته می شود.
  •  indexerها با استفاده از اندیس ها قابل دسترسی می باشند در حالیکه خاصیت ها توسط نام ها قابل دسترسی هستند.
  •  indexer می تواند سربارگذاری شود.

indexerها بسیار مشابه با خاصیت ها، با توابع get و set، تعریف می شوند. تفاوت اصلی این است که نام indexer، کلید واژه ی this است.
برنامه ای که در ادامه آمده، نحوه ی استفاده از یک indexer را نمایش دهد.

using System;  
namespace Indexer_example1  
{  
    class Program  
    {  
        class IndexerClass  
        {  
            private string[] names = new string[10];  
            public string this[int i]  
            {  
                get  
                {  
                    return names[i];  
                }  
                set  
                {  
                    names[i] = value;  
                }  
            }  
        }  
        static void Main(string[] args)  
        {  
            IndexerClass Team = new IndexerClass();  
            Team[0] = "Rocky";  
            Team[1] = "Teena";  
            Team[2] = "Ana";  
            Team[3] = "Victoria";  
            Team[4] = "Yani";  
            Team[5] = "Mary";  
            Team[6] = "Gomes";  
            Team[7] = "Arnold";  
            Team[8] = "Mike";  
            Team[9] = "Peter";  
            for (int i = 0; i < 10; i++)  
            {  
                Console.WriteLine(Team[i]);  
            }  
            Console.ReadKey();  
        }  
    }  
}

تفاوت میان Indexerها و Propertyها

indexerها بطور معمول برای کلاس ها ، که نشان دهنده ی برخی ساختار داده ها، یک آرایه، لیست، نقشه و … هستند، استفاده می شوند.

امیدوارم این مقاله به شما در فهم indexerها در سی شارپ کمک کرده باشد.

  • پسورد: www.mspsoft.com
زهره سلطانیان

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.