किसी को भी जानता है का उपयोग करते हुए एक पूर्णांक चर घोषित बीच कोई अंतर मौजूद है:मतभेद = 0
var i = default(int)
बनाम
var i = 0;
हो सकता है कि एक छोटे से प्रदर्शन अंतर या अन्य मतभेद?
सभी को धन्यवाद!
किसी को भी जानता है का उपयोग करते हुए एक पूर्णांक चर घोषित बीच कोई अंतर मौजूद है:मतभेद = 0
var i = default(int)
बनाम
var i = 0;
हो सकता है कि एक छोटे से प्रदर्शन अंतर या अन्य मतभेद?
सभी को धन्यवाद!
प्रभावी रूप से, कोई अंतर नहीं है। MSDN
टाइप पैरामीटर का डिफ़ॉल्ट मान निर्दिष्ट करता है। संदर्भ प्रकारों के लिए यह शून्य और मूल्य प्रकारों के लिए शून्य होगा।
int
एक मान प्रकार है, इसलिए 0.
को मैं एक बहुत अधिक पठनीय इसकी के रूप में स्पष्ट 0 काम प्रदर्शन करेंगे अभिव्यक्ति का समाधान हो जाएगा।
उत्तर के लिए धन्यवाद दोस्त –
कार्यक्षमता के मामले में, नहीं, 0
int
टाइप करने के लिए डिफ़ॉल्ट मान नहीं है।
प्रदर्शन के संदर्भ में, मुझे पूरा यकीन है कि default(int)
संकलन समय के दौरान 0 द्वारा प्रतिस्थापित किया गया है, इसलिए संकलन समय के दौरान केवल मामूली प्रदर्शन हिट हो सकती है, लेकिन रनटाइम नहीं।
भविष्य में एक और कारक हो सकता है यदि संकलक में (डिफ़ॉल्ट) परिभाषा बदल दी गई है तो आपकी परियोजना टूट सकती है।
दोनों के बीच कोई अंतर नहीं है।
सी # में विभिन्न स्थितियों के लिए सुविधाएं उपलब्ध कराई गई हैं। यह उनके पीछे तर्कसंगत कारणों के बावजूद सभी परिस्थितियों में उनका उपयोग नहीं करता है।
उदाहरण के लिए सामान्य जेनेरिक वर्गों में सामान्य है क्योंकि जेनेरिक कक्षाओं और विधियों में, एक मुद्दा उत्पन्न होता है कि पैरामीटर प्रकार टी को डिफ़ॉल्ट मान असाइन करना है, जब आप पहले से नहीं जानते हैं।
यद्यपि आप इसे प्राचीन प्रकार के साथ int जैसे उपयोग कर सकते हैं, लेकिन आपको ऐसा करने का सुझाव नहीं दिया जाता है, इसका अस्तित्व का पूरा कारण कुछ और है।
बाद वाले का उपयोग करें क्योंकि यह अधिक पठनीय और तार्किक है।
तुम भी this link on default
को देखने के लिए चाहते हो सकता है यहाँ var i = default(int)
कोड के लिए आईएल है:
IL_0001: ldc.i4.0
IL_0002: stloc.0 // i
यहाँ var i = 0;
कोड के लिए आईएल है:
IL_0001: ldc.i4.0
IL_0002: stloc.0 // i
यह की तरह लगता है व्यक्तिगत करने पर निर्भर करता वरीयता।
इसके अलावा 'var i = new int()' समान है। –
कोई अलग कोर्स नहीं है। पठनीय कोड लिखें, सुनिश्चित करें कि प्रोग्रामर का विशाल बहुमत स्पष्ट 0 उपयोग का पक्ष लेता है। –