दोपहर सभी,सी #: पॉइंटर सरणी बनाने के लिए जेनेरिक का उपयोग
यदि आप कृपया थोड़ी मदद करते हैं। .NET में 2 जीबी ऑब्जेक्ट सीमा को बाधित करने के लिए मैंने एक कक्षा बनाई है जो ढेर पर स्मृति आवंटित करती है और इससे मुझे मेरी फ्री रैम की सीमा तक सरणी बनाने की अनुमति मिलती है। हालांकि, विकास की आसानी के लिए (क्योंकि यह अवधारणा का प्रमाण था) इसे लंबे समय तक कठिन कोडित किया गया था। अब यह काम करता है कि मैं जेनेरिक का उपयोग करने के लिए कोड को बदलने की कोशिश कर रहा हूं, इसलिए मैं कई प्रकार के लिए एक ही कोड का उपयोग कर सकता हूं।
मेमोरी आवंटित करने और सरणी को सही ढंग से इंडेक्स करने के लिए मुझे उसी प्रकार के पॉइंटर्स की आवश्यकता होती है, जिसमें सरणी होगी यानी एक लंबी सरणी को long*[] myLargeArray
की आवश्यकता होती है। जब मैं जेनरिक इस घोषणा T*[] myLargeArray
है, जो हमेशा त्रुटि 'का पता नहीं ले सकते, के आकार मिलता है, या किसी प्रबंधित प्रकार के लिए सूचक की घोषणा (' टी ')'
अग्रिम धन्यवाद।
पीएस किसी से पूछने से पहले, हाँ मुझे वास्तव में ऐसे बड़े सरणी की आवश्यकता है।
एक 2D सरणी के लिएकोड उदाहरण:
LargeArray <int> myArray = new LargeArray<int>(x, y);
public unsafe class LargeArray where T : struct
{
...
private T*[] tArr;
...
public LargeArray(long sizeI, long sizeJ)
{
...
myLargeArray = new T*[sizeI];
...
}
}
मुझे लगता है कि फैक्ट्री पैटर्न निश्चित रूप से यहां जाने का तरीका है। –