[] ऑपरेटर को इंडेक्सर कहा जाता है।
एक इंडेक्सर एक ऑब्जेक्ट को इंडेक्स करने की अनुमति देता है जैसे कि एक ऐरे। जब आप एक क्लास के लिए इंडेक्सर परिभाषित करते हैं, तो यह क्लास एक वर्चुअल ऐरे की तरह व्यवहार करता है। फिर आप इस क्लास के इंस्टेंस को ऐरे एक्सेस ऑपरेटर ([ ]) का उपयोग करके एक्सेस कर सकते हैं।
इंडेक्सर्स को ओवरलोड किया जा सकता है। इंडेक्सर्स को कई पैरामीटर्स के साथ भी घोषित किया जा सकता है और प्रत्येक पैरामीटर एक अलग प्रकार का हो सकता है। यह आवश्यक नहीं है कि इंडेक्सर्स इंटीजर हों।
उदाहरण 1
static void Main(string[] args){ IndexerClass Team = new IndexerClass(); Team[0] = "A"; Team[1] = "B"; Team[2] = "C"; Team[3] = "D"; Team[4] = "E"; Team[5] = "F"; Team[6] = "G"; Team[7] = "H"; Team[8] = "I"; Team[9] = "J"; for (int i = 0; i < 10; i++){ Console.WriteLine(Team[i]); } Console.ReadLine(); } class IndexerClass{ private string[] names = new string[10]; public string this[int i]{ get{ return names[i]; } set { names[i] = value; } } }
आउटपुट
A B C D E F G H I J
उदाहरण 2
[] ओवरराइड करना
static class Program{ static void Main(string[] args){ IndexerClass Team = new IndexerClass(); Team[0] = "A"; Team[1] = "B"; Team[2] = "C"; for (int i = 0; i < 10; i++){ Console.WriteLine(Team[i]); } System.Console.WriteLine(Team["C"]); Console.ReadLine(); } } class IndexerClass{ private string[] names = new string[10]; public string this[int i]{ get{ return names[i]; } set{ names[i] = value; } } public string this[string i]{ get{ return names.Where(x => x == i).FirstOrDefault(); } } }
आउटपुट
A B C C