2011-06-02 18 views
6

मैं इस तरह एक नई वस्तु बना सकते हैं:क्या VB.NET में वस्तु घोषणा में (के रूप में) और (=) के बीच अंतर

Dim sqlconn As New SqlClient.SqlConnection(cs) 

या इस तरह:

Dim sqlconn = New SqlClient.SqlConnection(cs) 

क्या है अंतर? चूंकि दोनों मेरे लिए ठीक काम करते थे!

Dim sqlconn As SqlClient.SqlConnection = New SqlClient.SqlConnection(cs) 

दूसरा एक वीबी के किस संस्करण का उपयोग कर रहे हैं पर निर्भर करता है:

उत्तर

12

पहले एक का संक्षिप्त रूप है। वीबी 7 और वीबी 8 में यह एक ही है के रूप में:

Dim sqlconn As Object = New SqlClient.SqlConnection(cs) 

वीबी 9 प्रकार निष्कर्ष में पेश किया गया था, तो संकलक असाइनमेंट से प्रकार प्राप्त करेगा और पहले एक के रूप में एक ही कोड का उत्पादन करेगा।

प्रकार अनुमान के लिए आवश्यक है कि विकल्प Option Inferon पर सेट किया गया है। यह डिफ़ॉल्ट सेटिंग है, लेकिन यदि आप पुराने संस्करण से किसी प्रोजेक्ट को माइग्रेट करते हैं तो यह बंद हो सकता है।

+3

+1 वर्थ का उल्लेख है कि यदि आपके पास 'विकल्प इनफर ऑन' है तो अन्यथा केवल अनुमानित हैं, अन्यथा वीबी 9 पिछले संस्करणों की तरह कार्य करता है। – MarkJ

+0

@ मार्कज: अच्छा बिंदु। यह डिफ़ॉल्ट है, लेकिन अगर आप किसी प्रोजेक्ट को माइग्रेट करते हैं तो यह बंद हो सकता है। – Guffa

+0

+1 लेकिन, पूर्णता के लिए, 'ऑब्जेक्ट' की व्याख्या केवल तभी अनुमति दी जाती है जब 'विकल्प सख्त' 'बंद '(और' विकल्प इनफर ऑफ 'या प्री-वीबी 9) हो। –

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