इंडेक्सर (प्रोग्रामिंग): Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] में, इंडेक्सर किसी विशेष वर्ग या संरचना के उदाहरणों को सारणिक के समान अनुक्रमित करने की अनुमति देता है।<ref>{{cite web|access-date=2011-08-01 |author=jagadish980 |date=2008-01-29 |website=SURESHKUMAR.NET FORUMS |title=C# - What is an indexer in C# |url=http://forums.sureshkumar.net/vb-asp-net-interview-technical-questions/16320-c-what-indexer-c.html |archive-url=https://web.archive.org/web/20090922193214/http://forums.sureshkumar.net/vb-asp-net-interview-technical-questions/16320-c-what-indexer-c.html |archive-date=September 22, 2009 }}</ref> इस प्रक्रिया को [[ऑपरेटर ओवरलोडिंग]] भी कहा जाता है। | |||
[[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] में, इंडेक्सर किसी विशेष वर्ग या संरचना के उदाहरणों को | |||
== कार्यान्वयन == | == कार्यान्वयन == | ||
इंडेक्सर्स को गेट और सेट [[म्यूटेटर विधि]] | इंडेक्सर्स को गेट और सेट [[म्यूटेटर विधि]] {{C_sharp|operator[]}} के माध्यम से कार्यान्वित किया जाता है, जो [[संपत्ति (प्रोग्रामिंग)]] के समान कार्य करती हैं, किन्तु स्टेटिक विधि नहीं होने के कारण यह भिन्न होती हैं, और इसलिए इसका अर्थ यह है कि इंडेक्सर्स के एक्सेसर्स पैरामीटर प्राप्त किये जाते हैं। गेट और सेट एक्सेसर्स को इंडेक्सर घोषणा की पैरामीटर सूची का उपयोग करके इसे विधियों के रूप में काॅल जाता है, किन्तु सेट एक्सेसर में अभी भी {{C_sharp|value}} पैरामीटर निहित रहते है। | ||
== उदाहरण == | == उदाहरण == | ||
यहाँ वर्ग में अनुक्रमणिका के उपयोग का C# उदाहरण दिया गया है: | यहाँ वर्ग में अनुक्रमणिका के उपयोग का C# में उक्त उदाहरण दिया गया है:<ref>{{cite web | ||
<ref>{{cite web | |||
| access-date = 2011-08-01 | | access-date = 2011-08-01 | ||
| website= .net Funda | | website= .net Funda | ||
| title = C# Interview Questions | | title = C# Interview Questions | ||
| url = https://www.dotnetfunda.com/interview/exam4161-what-is-an-indexer-in-csharp-.aspx}}</ref> | | url = https://www.dotnetfunda.com/interview/exam4161-what-is-an-indexer-in-csharp-.aspx}}</ref> | ||
class Family | class Family | ||
Line 55: | Line 50: | ||
} | } | ||
इस उदाहरण में, अनुक्रमणिका का उपयोग nवें स्थान पर मान प्राप्त करने के लिए किया जाता है, और उसके | इस उदाहरण में, अनुक्रमणिका का उपयोग nवें स्थान पर मान प्राप्त करने के लिए किया जाता है, और उसके पश्चात इसके मान को संदर्भित सूची में इसकी स्थिति प्राप्त करने के लिए उपयोग किया जाता है। | ||
कोड का आउटपुट है: | |||
इस प्रकार कोड का आउटपुट कुछ इस प्रकार होता है: | |||
John is the member number 0 of the doeFamily | John is the member number 0 of the doeFamily | ||
Line 66: | Line 62: | ||
== संदर्भ == | == संदर्भ == | ||
{{Reflist}} | {{Reflist}} | ||
[[Category: प्रोग्रामिंग भाषा विषय]] [[Category: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] [[Category: ऑपरेटर्स (प्रोग्रामिंग)]] | |||
{{compu-prog-stub}} | {{compu-prog-stub}} | ||
Revision as of 00:48, 18 February 2023
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में, इंडेक्सर किसी विशेष वर्ग या संरचना के उदाहरणों को सारणिक के समान अनुक्रमित करने की अनुमति देता है।[1] इस प्रक्रिया को ऑपरेटर ओवरलोडिंग भी कहा जाता है।
कार्यान्वयन
इंडेक्सर्स को गेट और सेट म्यूटेटर विधि operator[]
के माध्यम से कार्यान्वित किया जाता है, जो संपत्ति (प्रोग्रामिंग) के समान कार्य करती हैं, किन्तु स्टेटिक विधि नहीं होने के कारण यह भिन्न होती हैं, और इसलिए इसका अर्थ यह है कि इंडेक्सर्स के एक्सेसर्स पैरामीटर प्राप्त किये जाते हैं। गेट और सेट एक्सेसर्स को इंडेक्सर घोषणा की पैरामीटर सूची का उपयोग करके इसे विधियों के रूप में काॅल जाता है, किन्तु सेट एक्सेसर में अभी भी value
पैरामीटर निहित रहते है।
उदाहरण
यहाँ वर्ग में अनुक्रमणिका के उपयोग का C# में उक्त उदाहरण दिया गया है:[2]
class Family
{ private List<string> _familyMembers = new List<string>(); public Family(params string[] members) { _familyMembers.AddRange(members); } public string this[int index] { // The get accessor get => _familyMembers[index]; // The set accessor with set => _familyMembers[index] = value; } public int this[string val] { // Getting index by value (first element found) get => _familyMembers.FindIndex(m => m == val); } public int Length => _familyMembers.Count; }
उपयोगी उदाहरण के अनुसार
void Main() { var doeFamily = new Family("John", "Jane"); for (int i = 0; i < doeFamily.Length; i++) { var member = doeFamily[i]; var index = doeFamily[member]; // same as i in this case, but it demonstrates indexer overloading allowing to search doeFamily by value. Console.WriteLine($"{member} is the member number {index} of the {nameof(doeFamily)}"); } }
इस उदाहरण में, अनुक्रमणिका का उपयोग nवें स्थान पर मान प्राप्त करने के लिए किया जाता है, और उसके पश्चात इसके मान को संदर्भित सूची में इसकी स्थिति प्राप्त करने के लिए उपयोग किया जाता है।
इस प्रकार कोड का आउटपुट कुछ इस प्रकार होता है:
John is the member number 0 of the doeFamily
Jane is the member number 1 of the doeFamily
यह भी देखें
- म्यूटेटर विधि
संदर्भ
- ↑ jagadish980 (2008-01-29). "C# - What is an indexer in C#". SURESHKUMAR.NET FORUMS. Archived from the original on September 22, 2009. Retrieved 2011-08-01.
- ↑ "C# Interview Questions". .net Funda. Retrieved 2011-08-01.