मैं की सलाह देते हैं कभी नहीं एक struct का उपयोग जब तक आप के मन में एक बहुत ही विशेष यूज-केस है और ठीक से पता कैसे struct प्रणाली लाभ होगा।
सी # structs के सदस्यों को अनुमति देते हैं, लेकिन वे एक अच्छा सा अलग तो वर्गों (subtyped नहीं किया जा सकता है, कोई आभासी प्रेषण, पूरी तरह से ढेर पर रह सकते हैं) काम करते हैं और व्यवहार उठाने, आदि के आधार पर बदल जाता है (लिफ्टिंग एक मूल्य प्रकार को ढेर में बढ़ावा देने की प्रक्रिया है - आश्चर्य!)
तो, प्रश्न का उत्तर देने के लिए: मुझे लगता है कि सी # में सबसे बड़े गलत नामकों में से एक "प्रदर्शन के लिए" structs का उपयोग कर रहा है। इसके लिए कारण 'ओवरहेड' को वास्तव में नहीं देखा जा सकता है कि यह बाकी प्रणाली और भूमिका के साथ कैसे बातचीत करता है, यदि नोट की कुछ भी है, तो यह खेलता है। इसके लिए प्रोफाइलिंग की आवश्यकता है और इस तरह के एक छोटे से कथन के साथ "कम ओवरहेड" के रूप में सारांशित नहीं किया जा सकता है।
कुछ अच्छे संरचना मूल्य प्रकारों के लिए मामले हैं - एक उदाहरण एक छवि के लिए एक सरणी में संग्रहीत एक समग्र आरजीबी मान है। इसका कारण यह है आरजीबी प्रकार छोटा है, वहाँ हो सकता है बहुत एक छवि में कई, मूल्य प्रकार सरणियों में अच्छी तरह से पैक किया जा सकता, और बेहतर स्मृति इलाके, आदि
स्रोत
2010-05-03 22:59:56
मुझे लगता है कि आप का मतलब है कि आपने कभी संरचना को परिभाषित नहीं किया है। आप शायद इसके बारे में सोचने के बिना रोज़ाना उनका इस्तेमाल करते हैं। – Gabe
@Gabe सही, मैंने तय किया कि :-) –
@pst: मुझे लगता है कि गेबे कहां कह रहा है "मैं कभी भी संरचना का उपयोग करने की अनुशंसा नहीं करता"। जाहिर है यह तुम्हारा मतलब नहीं है। –