मेरे पास जेनेरिक पैराम्यूटेशंस नामक एक वर्ग है जो दोनों गणनीय और गणक है। इसका काम वस्तुओं की एक क्रमबद्ध सूची लेना है और क्रमशः उनके क्रमपरिवर्तन के माध्यम से पुनरावृत्ति करना है।सी # कक्षा एक ही समय में IENumerable और एक IENumerator है। इसके साथ क्या मुद्दे हैं?
उदाहरण के लिए, इस वर्ग के एक पूर्णांक implemenation निम्नलिखित के माध्यम से पुनरावृति सकता है:
GenericPermutations<int> p = new GenericPermutations<int>({ 1, 2, 3 });
p.nextPermutation(); // 123
p.nextPermutation(); // 132
p.nextPermutation(); // 213
// etc.
तो भावना है कि यह एक चीजें आप से अधिक की गणना कर सकते हैं की 'सूची' में शामिल है में अपनी गणनीय। यह भी एक गणक है, क्योंकि इसके काम में अगली क्रमपरिवर्तन शामिल है।
मुद्दा: मैं वर्तमान में इस वर्ग के साथ IEnumerator और IEnumerable एकीकृत करने के लिए कोशिश कर रहा हूँ, और मुझे लगता है जैसे कि यह दोनों (बल्कि IEnumerable के रूप में एक उप वर्ग का उपयोग करने से) होना चाहिए। इस प्रकार मैंने GetEnumerator
विधि में एक नई जेनेरिक पैरामिशन ऑब्जेक्ट पास करके इस से दो गणक प्राप्त करने की कोशिश के साथ इस मुद्दे से परहेज किया है।
क्या यह एक बुरा विचार है? मुझे और कुछ और विचार करना चाहिए?
यदि आपका गणित उदाहरण भी उन सभी गणितकर्ताओं के लिए एक उदाहरण है, जो आपसे अनुरोध करते हैं, तो आप उनके बीच राज्य कैसे बनाएंगे? –
मेरा विचार था कि जब भी एक गणक का अनुरोध किया जाता है, तो मैं अपनी ऑब्जेक्ट की एक नई प्रतिलिपि बनाउंगा, और उस प्रति को गणनाकर्ता के रूप में पास कर दूंगा। तो यदि एक नया गणक अनुरोध किया जाता है, तो वर्तमान मूल में वर्तमान गणनाकर्ता की एक प्रति उत्तीर्ण की जाती है। – jtfairbank