2010-10-16 3 views
13

के रूप में सर्वोत्तम प्रथाओं का संबंध वहाँ का उपयोग कर के बीच एक सार्थक फर्क है:क्या नेट में "डबल" और "डबल" के बीच एक सार्थक अंतर है?

Double d; 

और

double d; 

मैं जानता हूँ कि सर्वोत्तम प्रथाओं विरोधाभासों से भरा है, इसलिए मुझे पता है कि यहाँ उत्तर भिन्न हो सकते हैं। मैं सिर्फ दोनों के बीच व्यावहारिक अंतर जानना चाहता हूं।

+3

भी देखें http://stackoverflow.com/questions/1 9 47068/इन-सी-दशमलव-और-दशमलव-भिन्न हैं और http://stackoverflow.com/questions/215255/string-vs-string-in-c और http://stackoverflow.com/questions/915938/अंतर-दशमलव-और-दशमलव और http://stackoverflow.com/questions/1017282/c-difference-between-system-object-and-object के बीच अंतर। वे * सटीक * डुप्लिकेट नहीं हैं, लेकिन वे भी हो सकते हैं। – LukeH

उत्तर

14

कोई फर्क नहीं पड़ता। double सिस्टम के लिए सिर्फ एक उपनाम है। C# में डबल।

ध्यान दें कि वीबी.नेट में एक ही एलियासिंग नहीं है (System.Int32 के लिए int, System.Double, आदि के लिए डबल), इसलिए एलियासिंग केवल सी # पर लागू होता है, न कि संपूर्ण रूप से .NET।

+0

तो मैं इसे लेता हूं कि अगर कोई सिस्टम प्रकारों का उपयोग करने के लिए चिपकना चाहता था, Int32 int को प्राथमिकता दी जाएगी। – IamIC

+1

@IanC: हाँ, लेकिन मुझे नहीं पता कि क्यों कोई सिस्टम प्रकारों से चिपकना चाहता है। ऐसा करने के लिए कोई विशेष फायदा नहीं है। –

+0

@Adam मुझे लगता है कि यह दृष्टिकोण से पूरी तरह से लगता है कि यह आधार है और प्रकार कभी-कभी अधिक वर्णनात्मक (Int32 बनाम int) होते हैं। – IamIC

10

नहीं, कोई फर्क नहीं पड़ता: double एक सी # कीवर्ड है जो System.Double प्रकार के लिए उपनाम है।

+1

यह गलत है। 'डबल' और 'डबल' के बीच एक बहुत ही महत्वपूर्ण अंतर है: 'डबल' * हमेशा * सिस्टम 'डबल' का संदर्भ लें, 'डबल' जो भी 'डबल' गुंजाइश में होता है, का संदर्भ देगा। साथ ही, मेरा मानना ​​है कि 'डबल' ईसीएमए सी # या आईएसओ सी # का हिस्सा नहीं है, केवल माइक्रोसॉफ्ट विजुअल सी #, इसलिए क्रॉस-प्लेटफार्म काम करने की गारंटी नहीं है। –

+4

@ जोर्ग: 'डबल' ईसीएमए/आईएसओ सी # का बहुत अधिक हिस्सा है और * किसी भी spec-compliant कार्यान्वयन पर काम करने की गारंटी है। 'डबल' के लिए जो भी 'डबल' गुंजाइश है, का जिक्र है: यह बिना कहने के चला जाता है; ध्यान दें कि मैं अपने जवाब में विशेष रूप से 'System.Double' कहने के लिए सावधान था। (और कोई भी जो अपना स्वयं का 'डबल' प्रकार घोषित करता है - या 'इंट 32' या' डेटटाइम 'या' ऑब्जेक्ट 'इत्यादि - अधिक स्थानीय नेमस्पेस में नुकसान को संभालने के लिए तैयार किया जाना चाहिए।) – LukeH

0

सी # में डबल और डबल समान हैं, हालांकि डबल .NET प्लेटफार्मों में डबल होने के लिए डबल ग्रीननेट किया गया है, और जहां तक ​​मुझे याद है कि डबल प्लेटफॉर्म पर डबल समान है, लेकिन इसकी गारंटी नहीं है (बावजूद यह वास्तव में होने के नाते)।

+4

यह गलत है। 'डबल' 'डबल' के लिए उपनाम नहीं है, यह' System.Double' के लिए उपनाम है। जिसका अर्थ है कि 'डबल' और 'डबल' के बीच एक बहुत ही महत्वपूर्ण अंतर है: 'डबल' होगा * हमेशा * सिस्टम 'डबल', 'डबल' का संदर्भ लें, जो भी 'डबल' गुंजाइश में होता है। –

0

दरअसल ... असंतोष के बाद मुझे पता चला कि सिस्टम। डबल डबल के चारों ओर एक रैपर है ... तो डबल सिस्टम के लिए "शॉर्टकट" नहीं है। डबल।

1

यहां थोड़ा अंतर है।

- आपके पास "डबल" नामक कक्षा, पैरामीटर, var हो सकता है लेकिन यदि आप इसे "डबल" नाम देना चाहते हैं तो आपको @ डबल "टाइप करना होगा।

- आप डबल के लिए क्वालीफायर का उपयोग कर सकते हैं लेकिन डबल के लिए नहीं। पूर्व

System.Double d; //Correct 
System.double d; //incorrect. Compiler error: Identifier expected for "System." . 
Double Double,@double;//Correct 
double double;//incorrect ,Identifier expected for both doubles 

वर्गों और मापदंडों .... भी स्ट्रिंग स्ट्रिंग, बूलियन-bool के लिए एक ही के लिए एक ही बात .....