2010-09-30 19 views
5

मैंने अभी रिशेर्पर का उपयोग शुरू किया। इसकी विशेषताओं में से एक यह है कि यह कोड कोड में परिवर्तनों का सुझाव देता है, मुझे लगता है, अच्छा कोडिंग प्रथाओं।क्या "var" कीवर्ड कोड पठनीयता को प्रभावित करता है?

यह सुझावों में से एक है कि असाइनमेंट के दौरान चर प्रकार को var में बदलना है। मैं बदल रहा था और अब कोड हर जगह var है। किसी भी तरह मुझे यह महसूस हो रहा है कि "var" कीवर्ड कोड को समझने में थोड़ा मुश्किल बनाता है।

क्या यह "var" whereever का उपयोग करने के लिए एक अच्छा कोडिंग अभ्यास है या वास्तविक प्रकार के साथ चिपकना बेहतर है। (अज्ञात प्रकारों को छोड़कर जहां इसे "var" का उपयोग करने की आवश्यकता होती है)

धन्यवाद।

+0

ओए, मैं व्यक्तिपरक तर्कों की अपेक्षा करता हूं। –

+2

अत्यधिक व्यक्तिपरक - इस तरह के प्रश्नों पर युद्ध शुरू हो गए हैं। – Randolpho

+1

एक अच्छी समुदाय विकी चर्चा करेगा। – kbrimington

उत्तर

3

C# programming guide पठनीयता को बढ़ाते समय var का उपयोग करने का सुझाव देता है, उदाहरण के लिए जब प्रकार स्पष्ट है, बहुत जटिल या बिल्कुल महत्वपूर्ण नहीं है।

वर कीवर्ड भी उपयोगी हो सकता है जब चर के विशिष्ट प्रकार के कीबोर्ड पर टाइप करने के लिए कठिन है, या स्पष्ट है, या कोड का पठनीयता में शामिल नहीं होते। एक उदाहरण जहां इस तरह से var उपयोगी है नेस्टेड जेनेरिक प्रकारों जैसे कि जो समूह संचालन के साथ उपयोग किए जाते हैं। में निम्न क्वेरी, क्वेरी चर का प्रकार IEnumerable<IGrouping<string, Student>> है। जब तक आप और अन्य जो आपके कोड को समझते हैं, तो सुविधा के लिए निहित टाइपिंग और ब्रेवटी का उपयोग करने में कोई समस्या नहीं है।

कोई सामान्य नियम नहीं है। ऐसी स्थितियां हैं जहां स्पष्ट प्रकार पठनीयता को बढ़ा सकता है।

उदाहरण:

var x = new Thingy(); //type is obvious 

var x = dict.Where(x => x.Value > 3); // type is complex and not important 

Foo(GetValue(FromOverThere())); // type is implicit anyway 

// equivalent to: 
var fromOverThere = FromOverThere(); 
var value = GetValue(fromOverThere) 
Foo(value); 

FooDocument doc = repository.Get(id); // glad to see the type here. 
3

मैं var उपयोग करने का सुझाव आप इस तरह कोड है जब:

var surelyAnXText = new XText(...); 

जहां आप हमेशा चाहते हैं प्रकार हम के एक चर घोषित कर रहे हैं बता सकते हैं। लेकिन जब आपके पास ऐसा कुछ नहीं है:

var whatIsThis = foo.Some_Method_Where_You_Cant_Tell_The_Return_Type_From_The_Name(); 
संबंधित मुद्दे