2009-02-19 16 views
7

.NET 3.5 (जैसे var, Lambda, linq, आदि) में और नई सुविधाओं के साथ, हम निष्कर्ष निकाल सकते हैं कि सी # न केवल स्थिर रूप से टाइप की गई भाषा है, बल्कि गतिशील रूप से टाइप किया गया है?सी # गतिशील रूप से टाइप की गई भाषा

क्यों या क्यों नहीं?

# संपादित करें 1

दावा नीचे के रूप में कई पोस्टर, 4.0 .NET भाषा को गतिशील प्रकार सत्ता जोड़ देगा। क्या यह भाषा धीमा कर देगा?

प्रत्येक रिलीज के साथ csharp विभिन्न भाषाओं से कुछ लेता है। अब तक .Net1.1 के रूप में, हमारे पूर्वजों भी यह कार्यात्मक भाषा बनाने का इरादा नहीं था ....

# संपादित 2

मैं आप में से कई सवाल गलत समझा लगता है; क्योंकि मैं आगामी रिलीज 4.0 सहित कुल मिलाकर सी # भाषा का जिक्र कर रहा हूं। इस प्रकार, यह कहना उचित है कि भाषा गतिशील रूप से टाइप की गई है ...

+0

नाइस - आपने पूरी तरह से 'गतिशील' शब्द का आविष्कार किया। मुझें यह पसंद है। –

+0

+1 यह एक महत्वपूर्ण भेद है - अच्छा सवाल! –

उत्तर

12

सी # गतिशील रूप से टाइप नहीं किया गया है - आपके द्वारा वर्णित उदाहरणों में सभी प्रकार का स्थैतिक रूप से अनुमान लगाया गया है। सी # के अगले संस्करण में कुछ गतिशील विशेषताएं शामिल होंगी हालांकि COM और वास्तव में गतिशील भाषाओं के साथ काम करने के लिए।

[संपादित करें # 1] हाँ सी # की नई गतिशील सुविधा धीमी हो जाएगी क्योंकि इसका उपयोग करने वाली सभी चीज़ों को देर से बाध्यकारी की आवश्यकता होगी। हालांकि यदि आप इसका उपयोग करते हैं तो यह केवल आपके एप्लिकेशन को धीमा कर देगा - यह मूल भाषा में बदलाव नहीं है। सी # 4 एक स्थिर टाइप की गई भाषा होगी जिसमें देर से बाध्य प्रकार के साथ काम करने की क्षमता होगी।

[संपादित करें # 2] कोई सी # 4 गतिशील रूप से टाइप की गई भाषा नहीं होगी। सी # 4 एक नया dynamic प्रकार प्रस्तुत करता है जो स्थिर प्रकार की जांच के बदले प्रकार के सदस्यों पर देर से बाध्यकारी विकल्प देगा। गतिशील क्षमताओं केवल इन गतिशील प्रकारों पर उपलब्ध होंगे। सी # की अंतर्निहित प्रकार प्रणाली नहीं बदली है।

2

नहीं, यह अभी स्थिर लिखा गया, var/लैम्ब्डा/LINQ सभी उपयोग inferance संकलक तो प्रकार संकलन समय पर जाना जाता है के द्वारा, गतिशील/बतख टाइपिंग C# 4.0

+0

इसे पढ़ना चाहिए: "नहीं, यह अभी भी स्थिर रूप से टाइप किया गया है, var/lambda/linq सभी कंपाइलर द्वारा अनुमान का उपयोग करते हैं, इसलिए टाइप ** कंपाइल टाइम ** पर जाना जाता है, गतिशील/बतख टाइपिंग सी # 4.0" –

1

गतिशील रूप से टाइप किया साथ आ जाएगा ?! नहीं। तकनीकी रूप से, सी # एक स्थाई रूप से टाइप की गई भाषा है। इसमें .NET रनटाइम द्वारा प्रदान की गई सीएलआर प्रतिबिंब सेवाओं के माध्यम से गतिशील विधि प्रेषण क्षमताएं हैं (जो v1.0 के बाद उपलब्ध है और .NET 3.5 सुविधाओं के साथ कुछ भी नहीं है, सी # 3.0 विशेषताएं अभी भी स्थिर रूप से टाइप की गई हैं)। सी # 4.0 में सही गतिशील टाइपिंग होगी।

0

Commenters: आप कि सुनिश्चित करें कि गतिशील प्रकार इतनी आसानी से निहित किया जा सकता हैं? मुझे एहसास हुआ है कि उनके प्रभाव फैल जाएंगे।

+0

दिलचस्प के साथ आ जाएगा , आपको किन तरीकों से लगता है कि प्रभाव फैल जाएगा? –

+0

एक नज़र में, मुझे लगता है कि यह विधि हस्ताक्षर या अधिभार विकल्पों को प्रभावित कर सकता है। हालांकि, इस सवाल को कुछ सालों में देखना दिलचस्प होगा। – brianary

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