इंडेक्सर (प्रोग्रामिंग): Difference between revisions
(Created page with "{{Confusing|reason=is this a C# or a general OO concept? Surely the interesting thing is the use of the keyword 'this', not what is emphasised here? Why is this whole article...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{Confusing|reason=is this a C# or a general OO concept? Surely the interesting thing is the use of the keyword 'this', not what is emphasised here? Why is this whole article only sourced to one C# forum post (the other forum post is a dead link). Maybe an example of use of the example class would demonstrate the purpose of the construct. Wikipedia is not a manual, guidebook or textbook [[WP:NOTHOWTO]].|date=April 2015}} | {{Confusing|reason=is this a C# or a general OO concept? Surely the interesting thing is the use of the keyword 'this', not what is emphasised here? Why is this whole article only sourced to one C# forum post (the other forum post is a dead link). Maybe an example of use of the example class would demonstrate the purpose of the construct. Wikipedia is not a manual, guidebook or textbook [[WP:NOTHOWTO]].|date=April 2015}} | ||
[[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] में, | [[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] में, इंडेक्सर किसी विशेष वर्ग या संरचना के उदाहरणों को सरणियों की तरह अनुक्रमित करने की अनुमति देता है।<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|operator[]}}. वे [[संपत्ति (प्रोग्रामिंग)]] के समान हैं, किन्तु स्टेटिक विधि नहीं होने के कारण भिन्न हैं, और तथ्य यह है कि इंडेक्सर्स के एक्सेसर्स पैरामीटर लेते हैं। गेट और सेट एक्सेसर्स को इंडेक्सर घोषणा की पैरामीटर सूची का उपयोग करके विधियों के रूप में बुलाया जाता है, किन्तु सेट एक्सेसर में अभी भी निहित है {{C_sharp|value}} पैरामीटर। | ||
== उदाहरण == | == उदाहरण == | ||
यहाँ | यहाँ वर्ग में अनुक्रमणिका के उपयोग का C# उदाहरण दिया गया है: | ||
<ref>{{cite web | <ref>{{cite web | ||
| access-date = 2011-08-01 | | access-date = 2011-08-01 | ||
Line 15: | Line 15: | ||
वर्ग परिवार | वर्ग परिवार | ||
{ | { | ||
class Family | |||
{ | |||
{ | private List<string> _familyMembers = new List<string>(); | ||
_familyMembers.AddRange ( | |||
} | 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वें स्थान पर मान प्राप्त करने के लिए किया जाता है, और उसके बाद उसके मान द्वारा संदर्भित सूची में स्थिति प्राप्त करने के लिए किया जाता है। | इस उदाहरण में, अनुक्रमणिका का उपयोग nवें स्थान पर मान प्राप्त करने के लिए किया जाता है, और उसके बाद उसके मान द्वारा संदर्भित सूची में स्थिति प्राप्त करने के लिए किया जाता है। | ||
कोड का आउटपुट है: | कोड का आउटपुट है: | ||
John is the member number 0 of the doeFamily | |||
Jane is the member number 1 of the doeFamily | |||
== यह भी देखें == | == यह भी देखें == |
Revision as of 00:39, 18 February 2023
This article may be confusing or unclear to readers. In particular, is this a C# or a general OO concept? Surely the interesting thing is the use of the keyword 'this', not what is emphasised here? Why is this whole article only sourced to one C# forum post (the other forum post is a dead link). Maybe an example of use of the example class would demonstrate the purpose of the construct. Wikipedia is not a manual, guidebook or textbook WP:NOTHOWTO.. (April 2015) (Learn how and when to remove this template message) |
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में, इंडेक्सर किसी विशेष वर्ग या संरचना के उदाहरणों को सरणियों की तरह अनुक्रमित करने की अनुमति देता है।[1] यह ऑपरेटर ओवरलोडिंग का रूप है।
कार्यान्वयन
इंडेक्सर्स को गेट और सेट म्यूटेटर विधियों के माध्यम से कार्यान्वित किया जाता है operator[]
. वे संपत्ति (प्रोग्रामिंग) के समान हैं, किन्तु स्टेटिक विधि नहीं होने के कारण भिन्न हैं, और तथ्य यह है कि इंडेक्सर्स के एक्सेसर्स पैरामीटर लेते हैं। गेट और सेट एक्सेसर्स को इंडेक्सर घोषणा की पैरामीटर सूची का उपयोग करके विधियों के रूप में बुलाया जाता है, किन्तु सेट एक्सेसर में अभी भी निहित है value
पैरामीटर।
उदाहरण
यहाँ वर्ग में अनुक्रमणिका के उपयोग का C# उदाहरण दिया गया है: [2] <वाक्यविन्यास प्रकाश लैंग = csharp> वर्ग परिवार {
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.