हाय यह ऐसा कुछ है जो वास्तव में मुझे परेशान कर रहा है और मुझे उम्मीद है कि किसी के पास मेरा जवाब होगा। मैं ref
(और out
) पढ़ रहा हूं और मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या मैं ref
एस का उपयोग करके अपना कोड धीमा कर रहा हूं। क्योंकि मेरी आँखों कोसमान प्रकार लौटने की बजाय रेफरी का उपयोग करने के लिए प्रदर्शन लागत?
void AddToInt(ref int original, int add){ original+=add; } // 1st parameter gets the result
साथ
int AddToInt(int original, int add){ return original+add; }
इस
AddToInt(ref _value, _add);
आसान है पढ़ सकते हैं और इस
_value = AddToInt(_value, _add);
मैं से कोड करने के लिए: आमतौर पर मैं की तरह कुछ का स्थान ले लेगा पता है कि मैं सह पर क्या कर रहा हूं एक मूल्य लौटने के विरोध में, ref
का उपयोग कर। हालांकि, प्रदर्शन कुछ है जो मैं गंभीरता से लेता हूं, और जब आप रेफरी का उपयोग करते हैं तो जाहिर है कि डिफ्रेंसिंग और क्लीनअप बहुत धीमा है।
मैं जानना चाहते हैं क्या क्यों प्रत्येक पोस्ट मैंने पढ़ा है कहते हैं वहाँ बहुत कुछ स्थानों पर आप आमतौर पर, जब यह एक ref
(मैं जानता हूँ कि उदाहरण काल्पनिक हैं, लेकिन मुझे आशा है कि आप विचार प्राप्त) से होकर गुजरेगा है मुझे लगता है कि ref
उदाहरण छोटा, साफ और अधिक सटीक है।
मुझे यह भी जानना अच्छा लगेगा कि क्यों ref
वास्तव में एक मूल्य प्रकार लौटने से धीमा है - मेरे लिए यह मुझे प्रतीत होता है, अगर मैं इसे वापस करने से पहले फ़ंक्शन वैल्यू को संपादित करने जा रहा था, तो यह तेज़ होगा वास्तविक चर को संदर्भित करने के लिए इसे उस चर के उदाहरण के विपरीत स्मृति के रूप में साफ़ करने से पहले इसे संपादित करने के लिए।
मैं आमतौर पर शैलीगत कारणों के लिए एक मूल्य लौटने पसंद करते हैं, के बाद से मैं पक्ष प्रभाव मुक्त कार्यों की तरह। – CodesInChaos
आप प्रदर्शन लागत को समझने की कोशिश कर रहे हैं? एक प्रोफाइलर से पूछो, हमसे मत पूछो! – sehe
पहला मामला पढ़ने में आसान है क्योंकि आपने तदनुसार अपनी विधि का नाम दिया है। कुछ _ _value = जोड़ें (_value, _add); 'या '_value = SumOf (_value, _add);' मेरे लिए अधिक पठनीय है। – nawfal