2008-12-04 11 views
8

मुझे बताया गया था कि दशमलव उपयोगकर्ता परिभाषित प्रकार के रूप में लागू किया गया है और अन्य सी # प्रकारों जैसे int के पास समर्पित विशिष्ट ऑपोड हैं। इसके पीछे तर्क क्या है?क्यों सी # में दशमलव अन्य सी # प्रकार से अलग है?

उत्तर

11

decimal यहां अकेला नहीं है; DateTime, TimeSpan, Guid, आदि भी कस्टम प्रकार हैं। मुझे लगता है कि मुख्य कारण यह है कि वे सीपीयू प्राइमेटिव्स को मैप नहीं करते हैं। float (आईईईई 754), int, आदि यहां बहुत सर्वव्यापी हैं, लेकिन decimal .NET पर बेस्पेक है।

यदि आप सीधे ऑपरेटरों से प्रतिबिंब के माध्यम से बात करना चाहते हैं तो यह वास्तव में एक समस्या का कारण बनता है (क्योंकि वे int आदि के लिए मौजूद नहीं हैं)। मैं किसी अन्य परिदृश्य के बारे में नहीं सोच सकता जहां आप अंतर देखेंगे।

(वास्तव में, वहां अभी भी structs आदि दूसरों का प्रतिनिधित्व करने के हैं - वे केवल इस तरह के ऑपरेटर के रूप में, आप क्या में होने की उम्मीद कर सकते हैं उनमें से ज्यादातर की कमी है)

+1

मुझे लगता है कि मुद्दा यह है कि दशमलव केवल प्रकार है जो सी # में इसके अपने कीवर्ड हो जाता है, लेकिन इलाज नहीं है है है विशेष रूप से सीएलआर द्वारा। –

6

"इस के पीछे तर्क क्या है ? "

दशमलव गणित सॉफ्टवेयर बनाम हार्डवेयर में संभाला जाता है। वर्तमान में, कई प्रोसेसर देशी दशमलव (वित्तीय दशमलव बनाम फ्लोट) गणित का समर्थन नहीं करते हैं। हालांकि आईईईई 754 आर को अपनाने के साथ यह बदल रहा है।

यह भी देखें:

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