क्या प्रक्रिया में कोई कचरा तैयार किए बिना एक चर [] बफर में एक चर की प्रतिलिपि बनाने के लिए सी # .Net (3.5 और ऊपर) में यह संभव है?सी # कचरा बनाने के बिना बफर में वैरिएबल कॉपी करें?
उदाहरण के लिए:
int variableToCopy = 9861;
byte[] buffer = new byte[1024];
byte[] bytes = BitConverter.GetBytes(variableToCopy);
Buffer.BlockCopy(bytes, 0, buffer, 0, 4);
float anotherVariableToCopy = 6743897.6377f;
bytes = BitConverter.GetBytes(anotherVariableToCopy);
Buffer.BlockCopy(bytes, 0, buffer, 4, sizeof(float));
...
बाइट [] बाइट्स मध्यस्थ वस्तु जो कचरा (एक रेफरी मानते हुए नहीं रह गया है इसे करने के लिए आयोजित किया जाता है) हो जाता है बनाता है ...
मुझे आश्चर्य है अगर बिटवाइज़ ऑपरेटर्स का उपयोग कर इंटरमीडिएरी बाइट [] बनाने के बिना चर को सीधे बफर में कॉपी किया जा सकता है?
हां, यह संभव है, लेकिन यह मुझे लगता है जैसे आप समय से अनुकूलन कर रहे हैं। एक विधि कॉल में बनाए गए कचरे, जैसे कि छोटे बाइट एरे और जैसे, सभी जनरल 0 ऑब्जेक्ट्स हैं और संभवतः कुछ मिलीसेकंड में एकत्र किए जाएंगे, या शायद कम भी। सीएलआर में क्षणिक वस्तु आवंटन और संग्रह बेहद कुशल है। – codekaizen
Whare Gen 0 ऑब्जेक्ट्स हैं? – markmnl
(आपकी चिंता के लिए - मुझे नहीं लगता कि अनुकूलन समयपूर्व है - मुझे यकीन नहीं है कि मैंने कैसा महसूस किया - मैं एक पुस्तकालय लिख रहा हूं जिसका उपयोग फ़ोन द्वारा किया जाएगा और बफर 100 का संभवतः हजारों बार एक सेकेंड - और जीसी ऐसे संसाधन बाधित उपकरणों पर चिंता का विषय है)। – markmnl