2012-05-13 18 views
7

संभव डुप्लिकेट:
What's the point of the var keyword?
What advantages does using var have over the explicit type in C#?कक्षा के नाम के बजाय var का उपयोग क्यों करें?

मैं हमेशा देखें कि अन्य लोगों की तरह कोड का निर्माण:

वर smtp = नए SmtpClient();

लेकिन इस मामले में SmtpClient के बजाय var का उपयोग क्यों करें? मैं हमेशा उपयोग

SmtpClient smtp = नए SmtpClient();

var अधिक कुशल है? वास्तविक चर प्रकार के बजाय var का उपयोग क्यों करें? क्या मैं कुछ भूल रहा हूँ?

+1

संभावित डुप्लिकेट [var का उपयोग करने वाले फायदे सी # में स्पष्ट प्रकार से अधिक हैं?] (Http://stackoverflow.com/questions/3425966/what-advantages-does-using-var-have-over-the- स्पष्ट-प्रकार-इन-सी) यह भी देखें [सी # 'var' बनाम विशिष्ट प्रकार के प्रदर्शन] (http://stackoverflow.com/questions/356846/c-sharp-var-vs- विशिष्ट- टाइप- प्रदर्शन) –

+0

@ मैटबॉल लॉल और ** यह ** एक डुप्लिकेट भी है –

उत्तर

16

कल्पना कीजिए।

Dictionary<Dictionary<String, String>, String> items = new Dictionary<Dictionary<String, String>, String>(); 

var इस तरह की चीजों के लिए उपयोगी है।

var items = new Dictionary<Dictionary<String, String>, String>(); 

बहुत आसान। var का बिंदुजैसा सी ++ 11 में है, संकलक प्रकार जानता है तो हमें खुद को इतना क्यों दोहराया जाना चाहिए। मैं व्यक्तिगत रूप से var का उपयोग शायद ही कभी करता हूं, लेकिन केवल लंबी घोषणाओं के लिए। यह सिर्फ वाक्य रचनात्मक चीनी है।

+0

मैं निश्चित रूप से अधिक बार उपयोग शुरू कर दूंगा –

15

नहीं, यह प्रभावशीलता के बारे में नहीं है, यह केवल कोड-लेखन शैली के बारे में है।

यह देखते हुए कि यह एक शैली के बारे में है, इस नियम हमेशा लागू नहीं किया जा सकता है।

var myVar = Some3dPartFunction(), प्रकार myVar की क्या है:

snipplet निम्नलिखित Immagine? कोड-शैली बिंदु दृश्य से, इस तरह से लिखने के लिए यह बिल्कुल स्पष्ट नहीं है, और अच्छा नहीं है।

संक्षेप में, एक चालाक तरीके से उपयुक्त लेखन का चयन करें।

+0

यह समझ में आता है, धन्यवाद –

+1

यदि आप यह नहीं बता सकते कि उसके नाम से कौन सा फ़ंक्शन वापस आता है, तो यह एक बुरी तरह नामित फ़ंक्शन है। –

+1

@ MatějZábský: एक परिपूर्ण दुनिया में मैं आपसे सहमत हूं, लेकिन वास्तविक कार्यालय में कोडिंग I ** हमेशा ** खराब नामित कार्यों, चर, कोड पर टिप्पणी नहीं की गई, कोड का परीक्षण नहीं किया .. जो भी हो। आप सही दुनिया की जरूरतों को पूरा करने के लिए एक ढांचा तैयार नहीं कर सकते .. – Tigran

1

यह वाक्यात्मक चीनी है:

SmtpClient smtp = new SmtpClient(); 

यह एक नई सुविधा है 3.0 में सी #, प्रकार निष्कर्ष बुलाया:

var smtp = new SmtpClient(); 

के बराबर है।

1

नहीं, यह अधिक कुशल नहीं है। यह स्पष्ट रूप से प्रकार लिखने की एक ही बात है। असल में यह अच्छा प्रोग्रामिंग var उपयोग करने के बजाय चर के प्रकार को लिखता है क्योंकि यह कोड को और अधिक पठनीय बनाता है।

तो:

var smtp = new SmtpClient(); 

और:

SmtpClient smtp = new SmtpClient(); 

एक ही बात दो अलग अलग तरीकों में लिखा हैं।

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