2012-12-16 13 views
6

सी # में हमारे पास नेट क्लास और छोटे नाम हैं, जैसे डबल और डबल। मुझे कुछ समय पहले सुझाव दिया गया था कि हम हमेशा छोटे नाम का उपयोग करेंगे, जानना चाहते थे क्यों। मुझे पता है कि वे दोनों हैं, लेकिन कभी-कभी दूसरों पर क्यों पसंद किया जाता है? बस पठनीयता या इसके लिए कुछ और है?सर्वोत्तम व्यवहार: क्या उपयोग करें, नेट क्लास या लघु नाम?

उदाहरण के लिए अगर मैं एक कक्षा एक स्ट्रिंग और एक बूलियन गुण है, जो निम्न में से हमेशा इस्तेमाल किया जाना चाहिए और जब अन्य इस्तेमाल किया जाना चाहिए होने बनाने हूँ:

Class MyClass { 
    ... 
    private String x; 
    private Boolean y; 
    ... 
} 

या

Class MyClass { 
    ... 
    private string x; 
    private bool y; 
    ... 
} 
+0

डबल और डबल पूरी तरह से समान नहीं हैं ... – Styxxy

+2

@Styxxy: गलत। यह सी # है, जावा नहीं। – SLaks

+2

ओउ, याद किया :) :)। – Styxxy

उत्तर

5

संक्षेप में: ऐसा करें जैसा आप चाहते हैं।

मैं उर्फ ​​हर बार जब मैं यह कर सकते हैं उपयोग करने के लिए पसंद करेंगे।

उपयोग Int32 बजाय int की आप अपने कोड में कई अलग अलग Ints है जब। Int32, Int64 या Int16 मिश्रण की तरह।

+0

रिचटर का कहना है कि वास्तविक नामों का उपयोग उन लोगों के लिए अधिक स्पष्ट है जो कई भाषाओं का उपयोग करते हैं (न केवल सी #)। और मुझे लगता है कि वह सही है। –

+0

हां, लेकिन कल्पना करें कि आपके पास एक कोड ब्लॉक है जहां आप मिश्रित 'लघु', 'int',' long' आदि का उपयोग करते हैं। 'Int16', 'Int32' और' Int64' –

+1

का उपयोग करके समझना अधिक आसान होगा। ? मैंने वही बात कहा - वास्तविक नामों का उपयोग (उपनाम नहीं)। –

3

ठीक है, वे वही हैं। सीएलआर के संकलन के बाद वे दोनों एक ही डेटाटाइप को इंगित करते हैं।

3

आप या तो अपने कोड में Int32 या int का उपयोग कर सकते हैं, लेकिन आपको इसे सुविधाजनक तरीके से उपयोग करना चाहिए, आपको इन दोनों का उपयोग नहीं करना चाहिए, यह कोड को अपठनीय बना सकता है, लेकिन सी # सम्मेलन कहता है कि आपको हमेशा समानार्थी शब्द का उपयोग करना चाहिए ।

कभी-कभी, आप "Wrapper Classes" के बीच मिश्रण हो सकता है उन लोगों के जावा में हैं, और "Nullable Types" नेट में, या

सी # में "पूर्णांक" और "Int32" "सी # के Type Synonyms" एक ही हैं , "बूल और" बूलियन "वही हैं," स्ट्रिंग "और" स्ट्रिंग "समान हैं, लेकिन" int ".NET

का उपयोग कर सकते हैं" System.Int32 "वर्ग की सी # भाषा में समानार्थी है। "पूर्णांक?" या Nullable < पूर्णांक > चर स्वीकार "अशक्त" मूल्य बनाने के लिए, लेकिन जावा में आप 'अशक्त' मान धारण करने के लिए पूर्णांक के बजाय आवरण वर्ग पूर्णांक का उपयोग करना चाहिए।

3

कि पूरी तरह आप पर निर्भर है में पूर्व-निर्धारित की केवल उपनाम कर रहे हैं। कुछ पठनीयता के लिए अधिक अपमानजनक है। तो उस व्यक्ति का उपयोग करें जो आपके लिए अधिक पठनीय और समृद्ध है।

उपनाम सिर्फ वहाँ convinience की वजह से उपयोग किया जाता है, लेकिन वे compilers के लिए वास्तविक के समान होती हैं।

3

स्ट्रिंग System.String के लिए एक उपनाम है, bool System.Boolean के लिए और इतने पर एक उपनाम है। सी # प्रकार के कीवर्ड और उनके उपनाम अदला-बदले हैं।

जब तक कि मैं स्पष्ट प्रकार के मामले में इस जानकारी भविष्य में जरूरत हो सकती है पर जोर करने की जरूरत है मैं व्यक्तिगत रूप से उपनाम का उपयोग पसंद करते हैं। जैसे System.Int32 का उपयोग करने के बजाय अगर int दिखाता है कि एक सीमा है, भले ही वे बिल्कुल समान हों।

3

आपको क्लास नाम का उपयोग करना चाहिए जब आपको स्थिर प्रकार और संक्षिप्त नाम तक पहुंचने की आवश्यकता होती है जब दिए गए प्रकार के चर/फ़ील्ड को घोषित किया जाता है।

int i = 0; 
Int32.TryParse(s, out i); 

माइक्रोसॉफ्ट कोड नमूने http://msdn.microsoft.com/en-us/library/system.int32.aspx

के किसी भी देखें इसमें किसी अन्य तरीके से करने से संकलित कोड में कोई अंतर नहीं है। यह सिर्फ क्लीनर और अधिक पठनीय है।

+0

आपने सी # के इस सम्मेलन को कहां देखा? –

+0

@MSakherSawan प्रारूप एमएस आमतौर पर उनके नमूना कोड में उपयोग करते हैं। –

+1

आप सही हो सकते हैं, लेकिन मैं Int32.TryParse के बजाय int.TryParse का उपयोग करके आपको कई माइक्रोसॉफ्ट नमूने दिखा सकता हूं, लेकिन यह इस बात का संकेत देता है कि इसके लिए कोई सम्मेलन नहीं है। –

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