2012-04-26 11 views
8

यह सीटीएस प्रणाली के बजाय सी # प्रकार कल्पित नामों का प्रयोग करने के लिए एक आम बात (int बजाय Int32 और String के बजाय string) है। * प्रकार के। हालांकि यह मुझे स्पष्ट नहीं है कि इस मामले में किसी प्रकार की स्थिर विधि को कॉल करने के लिए क्या उपयोग करना है: उपनाम या सिस्टम प्रकार।Int32.Parse बनाम int.Parse

माइक्रोसॉफ्ट सिस्टम प्रकारों के बजाय उपनामों का उपयोग करने के लिए किसी भी दिशानिर्देश को परिभाषित नहीं करता है। लेकिन एमएसडीएन उपनामों में चर के लिए उपयोग किया जाता है और सीटीएस समकक्ष स्थिर कॉल के लिए उपयोग किए जाते हैं। हमेशा उपनाम का उपयोग करने के लिए - उदाहरण MSDN: Parsing Numeric Strings

int number; 
Int32.TryParse(value, out number); 

लिए StyleCop SA1121 में विपरीत परिभाषित करता है। तो int.Parse ठीक है जबकि Int32.Parse नहीं है।

यह प्रश्न शैली का विषय है (मेरी राय में)। लेकिन मैं स्थिर कॉल के लिए सीटीएस प्रकार का उपयोग करने के कारणों को समझ नहीं पा रहा हूं।

+0

मैं करूंगा दूसरा StyleCop के सुझाव का उपयोग करने का सुझाव देते हैं। –

उत्तर

8

मैं व्यक्तिगत रूप से हमेशा स्थिर विधि कॉल के लिए पूर्ण श्रेणी के नामों का उपयोग करता हूं। यह इस तथ्य को रेखांकित करता है कि वे वास्तव में कक्षाएं हैं जिनमें सरलतम संभव (आदिम) डेटा के बजाय कोड के टुकड़े होते हैं जो उपनामों का अर्थ है।

मैं हमेशा चर के लिए उपनाम का उपयोग करता हूं।

+1

मेरे प्रश्नों को संशोधित कर रहा है और पाया कि यह स्वीकार नहीं किया गया था। आपका उत्तर 'Int32.Something' करने के लिए उचित व्याख्या देता है। हालांकि मैं दूसरी तरफ पसंद करता हूं :) – Mike

4

बिल्कुल कोडिंग शैली नहीं है, बस कोई तकनीकी अंतर नहीं है। व्यक्तिगत रूप से मैं int.Parse का समर्थन करता हूं, लेकिन कई प्रसिद्ध experts हैं जो विपरीत पसंद करते हैं।

+0

मैं 'Int32.Parse' पसंद करता हूं, हालांकि मैं कोई विशेषज्ञ नहीं हूं। :) – Default

+1

@ डीफॉल्ट नहीं, आप बस जाने-माने नहीं हैं। :-) – LarsTech

+0

मुझे यहां रुचि होगी कि उपनाम का उपयोग करने के पीछे तर्क क्या है। मुझे पूर्ण नामों का उपयोग करने के पीछे तर्क पता है (मेरा जवाब देखें) लेकिन मैंने कभी उपनामों के लिए तर्क नहीं सुना है। – Stilgar

1

मैं दृढ़ता से है.अगर आप int.Parse(...) बजाय int32 उपयोग करने के लिए सुझाव है immagine किसी अपने कोड 64 बिट मशीन पर इसे चलाने पढ़ा है, और यह probbale है कि वह उस int32 के बारे में पता नहीं है और int सिर्फ उपनाम, यह कर रहे हैं उसे गलत धारणा करने के लिए बनाओ।

दूसरे शब्दों में, भले ही कोई कोई फर्क है देखने के कार्यात्मक बिंदु से, कोड में अस्पष्टता से बचने के (referencies शायद 32 बिट कोड के लिए) मैं int.Parse(..)

+0

यह स्थिर तरीकों से कोई संबंध नहीं रखता है क्योंकि डेटा का आकार वैरिएबल से संबंधित है, विधि कॉल पर नहीं। वास्तव में आप लंबे समय तक कर सकते हैं I int.Parse (...)। आप और अधिक कैसे करेंगे String.IsNullOrEmpty बनाम string.IsNullOrEmpty? – Stilgar

+0

@Stilgar: मैं किसी भी इसके प्रतिनिधित्व में डेटा के बारे में बात नहीं कर रहा हूं। मैं ** केवल ** नाम के बारे में बात कर रहा हूं: int32 बनाम int। चर, चर के आकार, एक्सेसर प्रकार और अन्य सभी सामान इस पोस्ट से संबंधित नहीं है। – Tigran

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