2009-02-19 11 views
9

प्रकारों को परिवर्तित करते समय, मैंने स्वयं को वीबी फ़ंक्शंस और बीसीएल कन्वर्ट दोनों का उपयोग किया है। * विधियों।
उदा)* वीबी कार्यों और कन्वर्ट के बीच सूक्ष्म * अंतर। * कार्यों के लिए?

  • Cstr() बनाम Convert.ToString()
  • CInt() बनाम Convert.ToInt32()
  • CDbl() बनाम Convert.ToInt64()
  • आदि ...

कोई सूक्ष्म मतभेद हैं कि ऐसा करना चाहिए ध्यान दें?

उत्तर

9

यह सिद्धांत में before को शामिल किया गया है, लेकिन हां मतभेद हैं: मूल रूप से वीबी हेल्पर्स आपके लिए अतिरिक्त काम करेंगे, जहां जनरिक्स एक अपवाद फेंक देगा, और आम तौर पर लेकिन सार्वभौमिक रूप से वीबी सहायक नहीं तेज़ हैं (हालांकि मुझे नहीं पता कि यह महत्वपूर्ण है या नहीं) क्योंकि वे वास्तव में आईएल चीनी हैं। स्वाद के लिए मौसम।


संपादित करें: This guy इसे बेहतर से कवर कर सकता है।

रेडक्स संपादित करें: जोएल कोहुओर्न precursor to the above article की भी सिफारिश करता है, और जाहिर है कि उसकी आस्तीन कहीं और बेंचमार्किंग कर रही है।

जोएल ने लिखा है:

सारांश, CInt() एक ऑपरेटर है, जबकि Convert.ToInt32() एक कार्य है। सीआईएनटी में कहीं भी (int) x के बीच रहता है; और कनवर्ट करें। ToInt32 (x) ;.

+1

हुह:

पाठ्यक्रम नेट के शॉर्ट सर्किट If समारोह का

अब यह करने के लिए एक बेहतर तरीका प्रदान करता है, जबकि मैं अपनी पोस्ट पर शोध किया गया था यदि आप अपने संपादन किया - ज्यादातर की तलाश में (और करने में नाकाम रहने ढूंढें) मैंने उल्लेख किया बेंचमार्क लिंक। यह मजाकिया है क्योंकि आपका लिंक उसी लेखक द्वारा अनुवर्ती है जिसे मैंने पोस्ट किया था। यदि आप दोनों को शामिल करने के लिए एक और संपादन करते हैं तो मैं आपकी पोस्ट को आपके पक्ष में हटा दूंगा। –

+1

हो गया, लेकिन अगर आप इसे संपादित करते हैं तो मुझे नाराज नहीं होगा :) – annakata

+0

मुझे जोएल का सारांश पसंद आया। धन्यवाद – Sung

1

एक और बड़ा अंतर है जिसे मैंने अभी खोजा है और मुझे लगता है कि ओपी के कई सालों बाद भी इसका उल्लेख करने लायक है!

For i As Integer = 0 To 1 - CInt(processThirdItem) 'Evaluates to -1 (1 - -1 = 2) 
    'Do stuff... 
Next 

तो, CInt wouldn के स्थान पर Convert.ToInt32 का उपयोग कर: CInt({Boolean expression}) -1 जब True,, का मूल्यांकन करता है, जबकि Convert.ToInt<n> 1.

का मूल्यांकन यह किसी बाहर पकड़ सकते थे, जो एक गणित के मूल्यांकन में पूर्व प्रयोग किया जाता है ईजी काम नहीं करते जब तक आप ऑपरेटर को - से + में बदल नहीं देते।

For i As Integer = 0 to If(processThirdItem, 2, 1) 
    'Do stuff... 
Next 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^