2016-11-17 7 views
9

सबसे आम डेटाटाइप्स प्रकार में एक का निर्माण किया है: Int32int है, Booleanbool है, Stringstring है, आदि क्यों कोई निर्मित में datetime के लिए प्रकार?डेटटाइम के लिए कोई अंतर्निहित प्रकार क्यों नहीं है?

सबसे पहले मैंने सोचा कि ऐसा इसलिए है क्योंकि DateTime में गुण और सार्वजनिक कार्य हैं, लेकिन int भी है। क्या कोई इस पर रोशनी डाल सकता है? अंतर्निहित समकक्ष होने के लिए किसी प्रकार के मानदंड क्या हैं?

+2

वह क्या मूल्य जोड़ देगा? सभी 'डबल', 'लांग' इत्यादि 'सिस्टम' डबल ',' System.Int64', आदि के लिए _aliases_ हैं। आदि के साथ सभी प्रकार "अंतर्निर्मित" प्रकार नहीं हैं क्योंकि 'दशमलव' एक आदिम प्रकार नहीं है सीएलआर में –

उत्तर

9

सीएलआर केवल मूल बिल्डिंग ब्लॉक को परिभाषित करता है: अन्य सभी को परिभाषित करने के लिए आवश्यक न्यूनतम डेटा प्रकार। वे उपनाम दिए गए प्रकार हैं।

चूंकि DateTime एक संरचना में पैक किए गए लंबे और पूर्णांक का संग्रह है, इसके लिए सीएलआर में एक नया डेटा प्रकार बनाने की आवश्यकता नहीं है। आप इसे सीएलआर में पहले से परिभाषित डेटा प्रकारों के साथ बना सकते हैं। इसे अलियासिंग करने की कोई ज़रूरत नहीं है।

+1

मुझे लगता है कि ओपी का मतलब है: हम 'System.Int32' और' system.String' के लिए 'string' के लिए' int' टाइप क्यों कर सकते हैं, लेकिन 'System.DateTime' के लिए 'डेटाटाइम' नहीं? –

+4

यदि यह सवाल है, तो यह काफी सरल है: 'डेटटाइम' सीएलआर का हिस्सा नहीं है। इसलिए इसमें कोई उपनाम नहीं है। यह कोई आदिम प्रकार नहीं है। –

+2

@PatrickHofman जो एक महान तर्क नहीं है। 'System.Decimal' सीएलआर का हिस्सा नहीं है लेकिन हमारे पास' दशमलव' है। –

1

ये भाषा में केवल उपनाम हैं। डेटटाइम में उपनाम नहीं है। बस।

अद्यतन:
सी # भाषा विनिर्देश के अनुसार:

सी # पूर्वनिर्धारित struct प्रकार का एक सेट प्रदान सरल प्रकार कहा जाता है। सरल प्रकारों को आरक्षित शब्दों के माध्यम से पहचाना जाता है, लेकिन ये आरक्षित शब्द सिस्टम नामस्थान में पूर्वनिर्धारित संरचना प्रकारों के लिए उपनाम हैं, जैसा कि नीचे दी गई तालिका में वर्णित है।

 
    Reserved word Aliased type 
    ---------------------------- 
    sbyte   System.SByte 
    byte   System.Byte 
    short   System.Int16 
    ushort   System.UInt16 
    int    System.Int32 
    uint   System.UInt32 
    long   System.Int64 
    ulong   System.UInt64 
    char   System.Char 
    float   System.Single 
    double   System.Double 
    bool   System.Boolean 
    decimal   System.Decimal 

सी # भाषा विनिर्देश यहां पाया जा सकता:
C: \ Program Files (x86) \ माइक्रोसॉफ्ट विजुअल स्टूडियो 11.0 \ कुलपति # \ विनिर्देशों \ 1033 \ CSharp भाषा Specification.docx

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