पिछले प्रश्न में आज इन दो अलग-अलग दृष्टिकोणों को उत्तर के रूप में एक प्रश्न के रूप में दिया गया था।कास्ट का उपयोग दो बार है, या एक बार के रूप में उपयोग करें और एक नया चर
हमारे पास एक ऐसा ऑब्जेक्ट है जो IDisposable
को लागू या लागू नहीं कर सकता है। यदि ऐसा होता है, तो हम इसे निपटाना चाहते हैं, अगर हम कुछ भी नहीं करते हैं। दो अलग-अलग दृष्टिकोण ये हैं:
1)
if(toDispose is IDisposable)
(toDispose as IDisposable).Dispose();
2)
IDisposable disposable = toDispose as IDisposable;
if(disposable != null)
disposable.Dispose();
मुख्य रूप से, टिप्पणी यह आम सहमति की तरह लगता है से किया गया है कि 2) सबसे अच्छा तरीका था।
लेकिन मतभेद को देखते हुए, हम यह करने के लिए नीचे आ:
1) toDispose पर दो बार एक डाली निष्पादित करें।
2) केवल एक बार कास्ट करें, लेकिन एक नई मध्यवर्ती वस्तु बनाएं।
मुझे लगता है कि 2 मामूली धीमी होगी क्योंकि इसे एक नया स्थानीय चर आवंटित करना है, तो इसे इस मामले में सबसे अच्छा समाधान क्यों माना जाता है? यह पूरी तरह से पठनीयता मुद्दों के कारण है?
एक तरफ ध्यान दें, मैं मध्यवर्ती चर के बारे में चिंता नहीं करता; एक बार जिटर के पास आपके कोड के साथ अपना रास्ता हो जाने के बाद, माइक्रो-ऑप्टिमाइज़ेशन के बारे में आपके द्वारा किए गए किसी भी अनुमान को अमान्य घोषित किया जा सकता है। –