c# 4.5 - सी#के लिए सही संस्करण संख्या क्या हैं?




.net framework (9)

सी # के लिए सही संस्करण संख्या क्या हैं? क्या हुआ जब? मुझे सी # 3.5 के बारे में कोई जवाब क्यों नहीं मिल रहा है?

यह प्रश्न प्राथमिक रूप से उन लोगों की सहायता करना है जो गलत संस्करण संख्या का उपयोग कर उत्तर खोज रहे हैं, उदाहरण के लिए सी # 3.5 । उम्मीद है कि गलत संस्करण संख्या के साथ कोई जवाब खोजने में विफल होने वाला कोई भी व्यक्ति इस प्रश्न को ढूंढ लेगा और फिर सही संस्करण संख्या के साथ फिर से खोज करेगा।


Answers

सी # के संस्करण संख्याओं से निपटने में सबसे बड़ी समस्या यह तथ्य है कि यह .NET Framework के किसी संस्करण से बंधी नहीं है, जो कि विजुअल स्टूडियो और .NET Framework के बीच सिंक्रनाइज़ रिलीज़ के कारण प्रतीत होता है।

सी # का संस्करण वास्तव में संकलक के लिए बाध्य है, ढांचे नहीं। उदाहरण के लिए, विजुअल स्टूडियो 2008 में आप सी # 3.0 लिख सकते हैं और .NET Framework 2.0, 3.0 और 3.5 को लक्षित कर सकते हैं। सी # 3.0 नामकरण कोड सिंटैक्स के संस्करण का वर्णन करता है और समर्थित सुविधाओं को उसी तरह से वर्णन करता है जैसे एएनएसआई सी 8 9, सी 9 0, सी 99 सी के लिए कोड सिंटैक्स / फीचर्स का वर्णन करता है।

मोनो पर एक नज़र डालें, और आप देखेंगे कि मोनो 2.0 (ईसीएमए विनिर्देशों से .NET Framework का अधिकतर लागू संस्करण 2.0) सी # 3.0 सिंटैक्स और फीचर्स का समर्थन करता है।


  • दृश्य स्टूडियो .NET के साथ सी # 1.0

  • विजुअल स्टूडियो 2005 के साथ सी # 2.0

  • विजुअल स्टूडियो 2008 के साथ सी # 3.0

  • विजुअल स्टूडियो 2010 के साथ सी # 4.0

  • विजुअल स्टूडियो 2012 के साथ सी # 5.0

  • विजुअल स्टूडियो 2015 के साथ सी # 6.0

  • विजुअल स्टूडियो 2017 के साथ सी # 7.0


एमएसडीएन लेखों की तुलना "सी # 2.0 भाषा और कंपाइलर में नया क्या है " और " विज़ुअल सी # 2005 में नया क्या है " की तुलना करना, यह समझना संभव है कि "सी # major_version.minor_version" संकलक के संस्करण संख्या के अनुसार बनाया गया है।

सी # 1.2 .NET 1.1 और VS 2003 के अनुरूप है और इसे Visual C # .NET 2003 भी नामित किया गया है

लेकिन माइक्रोसॉफ्ट पर आगे मामूली संस्करण (डॉट के बाद) संख्या बढ़ाने या शून्य से अलग होने के लिए बंद कर दिया, 0 । हालांकि यह ध्यान दिया जाना चाहिए कि .NET 3.5 के अनुरूप सी # msdn.microsoft.com में "विजुअल सी # 2008 सर्विस पैक 1" के रूप में नामित है।

दो समांतर नाम हैं: प्रमुख .NET / कंपाइलर संस्करण संख्या और विजुअल स्टूडियो नंबरिंग द्वारा।

सी # 2.0 विजुअल सी # 2005 के लिए समानार्थी है

सी # 3.0 से मेल खाता है (या, अधिक सही ढंग से, लक्षित कर सकते हैं):


सी # संस्करण इतिहास:

सी # माइक्रोसॉफ्ट द्वारा विकसित एक सरल और शक्तिशाली ऑब्जेक्ट उन्मुख प्रोग्रामिंग भाषा है।

सी # 2002 में अपनी पहली रिलीज के बाद से काफी विकसित हुआ है। सी # को .NET Framework 1.0 के साथ पेश किया गया था।

निम्न तालिका सी # के प्रत्येक संस्करण में पेश की गई महत्वपूर्ण विशेषताओं को सूचीबद्ध करती है।

और सी # संस्करण का नवीनतम संस्करण सी # संस्करणों में उपलब्ध है।


यह यहां अधिकांश उत्तरों के समान है, लेकिन आसानी से टैब्यूलर किया गया है, और इसमें पूर्णता के लिए विजुअल स्टूडियो और .NET संस्करण हैं।

╔════════════╦════════════╦══════════════╦═════════════╦══════════════╗
║ C# version ║ VS version ║ .NET version ║ CLR version ║ Release date ║
╠════════════╬════════════╬══════════════╬═════════════╬══════════════╣
║    1.0     ║    2002    ║    1.0       ║     1.0     ║   Feb 2002   ║
║    1.2     ║    2003    ║    1.1       ║     1.1     ║   Apr 2003   ║
║    2.0     ║    2005    ║    2.0       ║     2.0     ║   Nov 2005   ║
║            ║            ║    3.0       ║     2.0     ║   Nov 2006   ║
║    3.0     ║    2008    ║    3.5       ║     2.0     ║   Nov 2007   ║
║    4.0     ║    2010    ║    4.0       ║     4       ║   Apr 2010   ║
║    5.0     ║    2012    ║    4.5       ║     4       ║   Aug 2012   ║
║    5.0     ║    2013    ║    4.5.1     ║     4       ║   Oct 2013   ║
║            ║            ║    4.5.2     ║     4       ║   May 2014   ║
║    6.0     ║    2015    ║    4.6       ║     4       ║   Jul 2015   ║
║            ║            ║    4.6.1     ║     4       ║   Nov 2015   ║
║            ║            ║    4.6.2     ║     4       ║   Aug 2016   ║
║    7.0     ║    2017    ║              ║             ║   Mar 2017   ║
║            ║            ║    4.7       ║     4       ║   May 2017   ║
║    7.1     ║ 2017(v15.3)║              ║             ║   Aug 2017   ║
║            ║            ║    4.7.1     ║     4       ║   Oct 2017   ║
║    7.2     ║ 2017(v15.5)║              ║             ║   Dec 2017   ║
║            ║            ║    4.7.2     ║     4       ║   Apr 2018   ║
║    7.3     ║ 2017(v15.7)║              ║             ║   May 2018   ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝

नोट: .NET विकास इन दिनों वीएस से काफी स्वतंत्र है, प्रत्येक के संस्करणों के बीच कोई सहसंबंध नहीं है। अधिक के लिए " .NET Framework संस्करणों और निर्भरताओं " का संदर्भ लें।


सी # भाषा संस्करण इतिहास:

ये इस लेखन के समय सी # के संस्करणों के बारे में ज्ञात हैं:

ओपी के सवाल के जवाब में:

सी # के लिए सही संस्करण संख्या क्या हैं? क्या हुआ जब? मुझे सी # 3.5 के बारे में कोई जवाब क्यों नहीं मिल रहा है?

सी # 3.5 जैसी कोई चीज नहीं है - यहां भ्रम का कारण यह है कि सी # 3.0 .NET 3.5 में मौजूद है। भाषा और ढांचे को स्वतंत्र रूप से संस्करणित किया गया है, हालांकि - जैसा कि सीएलआर है, जो .NET 2.0 से 3.5 के लिए संस्करण 2.0 पर है, .NET 4 सीएलआर 4.0 पेश करता है, इसके बावजूद सर्विस पैक। .NET 4.5 में सीएलआर में विभिन्न सुधार हैं, लेकिन संस्करण स्पष्ट नहीं है: कुछ स्थानों पर इसे सीएलआर 4.5 के रूप में संदर्भित किया जा सकता है (उदाहरण के लिए, इस एमएसडीएन पेज को इसका संदर्भ देने के लिए उपयोग किया जाता है), लेकिन Environment.VersionEnvironment.Version संपत्ति अभी भी 4.0.xxx की रिपोर्ट।

भाषा, रनटाइम और फ्रेमवर्क संस्करणों के बीच संबंधों के बारे में अधिक विस्तृत जानकारी गहराई साइट पर सी # पर उपलब्ध है। इसमें सी # 3.0 की विशेषताओं के बारे में जानकारी शामिल है जिसका उपयोग आप .NET 2.0 को लक्षित करते समय कर सकते हैं। (यदि कोई भी इस सामग्री को इस विकी उत्तर में लाने के लिए चाहता है, तो उनका स्वागत है।)

3 मई, 2017 तक, सी # भाषा टीम ने सी # संस्करणों और उनके जीथब रेपो पर विशेषताओं का इतिहास बनाया: विशेषताएं सी # भाषा संस्करणों में जोड़ा गयाएक ऐसा पृष्ठ भी है जो आगामी और हाल ही में लागू भाषा सुविधाओं को ट्रैक करता है


VERSION _____ भाषा विनिर्देश ______ माइक्रोसॉफ़्ट कंपिलर

सी # 1.0 / 1.2 ____ दिसंबर 2001 ? / 2003 ? ___________ जनवरी 2002 ?

सी # 2.0 _______ सितम्बर 2005 ________________ नवंबर 2005 ?

सी # 3.0 _______ मई 2006 _____________________ नवंबर 2006 ?

सी # 4.0 _______ मार्च 200 9 (मसौदा) ______________ अप्रैल 2010 ?

सी # 5.0; अगस्त 2012 में .NET 4.5 के साथ जारी किया गया

सी # 6.0; .NET 4.6 2015 के साथ जारी किया गया

सी # 7.0; .NET 4.7 2017 के साथ जारी किया गया


आप here नवीनतम सी # संस्करणों की जांच कर सकते here


ध्यान दें:

मैंने इस धागे और कई अन्य लोगों को पढ़ा है, लेकिन मुझे यह बिल्कुल सही जवाब नहीं मिल रहा है।

जिसके द्वारा मैं पूरी तरह से समझता हूं कि क्यों उपयोग करें ?? और कब उपयोग करें ?? और कैसे उपयोग करें ?? "

स्रोत:

विंडोज संचार नींव क्रेग मैकमुर्ट्री द्वारा आईएसबीएन 0-672-32948-4 द्वारा छोड़ा गया

शून्य मूल्य प्रकार

ऐसी दो सामान्य परिस्थितियां हैं जिनमें कोई यह जानना चाहेगा कि मूल्य को किसी प्रकार के उदाहरण के लिए असाइन किया गया है या नहीं। पहला तब होता है जब आवृत्ति डेटाबेस में एक मान का प्रतिनिधित्व करती है। ऐसे मामले में, कोई यह सुनिश्चित करने के लिए उदाहरण की जांच कर सकता है कि डेटाबेस में मूल्य वास्तव में मौजूद है या नहीं। दूसरी परिस्थिति, जो इस पुस्तक के विषय वस्तु से अधिक प्रासंगिक है, वह तब होता है जब आवृत्ति कुछ दूरस्थ स्रोत से प्राप्त डेटा आइटम का प्रतिनिधित्व करती है। फिर, कोई उदाहरण से यह निर्धारित करना चाहेगा कि उस डेटा आइटम का मूल्य प्राप्त हुआ था या नहीं।

.NET Framework 2.0 में एक सामान्य प्रकार की परिभाषा शामिल होती है जो इस तरह के मामलों को प्रदान करती है जिसमें कोई मूल्य प्रकार के उदाहरण के लिए शून्य निर्दिष्ट करना चाहता है, और परीक्षण करें कि उदाहरण का मान शून्य है या नहीं। वह जेनेरिक टाइप परिभाषा System.Nullable है, जो सामान्य प्रकार के तर्कों को बाधित करती है जिन्हें टी के मान प्रकारों के लिए प्रतिस्थापित किया जा सकता है। System.Nullable से बनाए गए प्रकारों के उदाहरणों को शून्य का मान असाइन किया जा सकता है; वास्तव में, उनके मूल्य डिफ़ॉल्ट रूप से शून्य हैं। इस प्रकार, System.Nullable से निर्मित प्रकारों को शून्य मान प्रकार के रूप में संदर्भित किया जा सकता है। System.Nullable में एक प्रॉपर्टी, वैल्यू है, जिसके द्वारा बनाए गए प्रकार के उदाहरण को आवंटित मान प्राप्त किया जा सकता है यदि इंस्टेंस का मान शून्य नहीं है। इसलिए, कोई लिख सकता है:

System.Nullable<int> myNullableInteger = null;
myNullableInteger = 1;
if (myNullableInteger != null)
{
Console.WriteLine(myNullableInteger.Value);
}

सी # प्रोग्रामिंग भाषा System.Nullable से निर्मित प्रकारों को घोषित करने के लिए एक संक्षिप्त वाक्यविन्यास प्रदान करती है। वह वाक्यविन्यास एक को संक्षिप्त करने की अनुमति देता है:

System.Nullable<int> myNullableInteger;

सेवा मेरे

int? myNullableInteger;

कंपाइलर किसी को एक सामान्य मूल्य प्रकार के मान को इस प्रकार से सामान्य मान प्रकार में असाइन करने का प्रयास करने से रोक देगा:

int? myNullableInteger = null;
int myInteger = myNullableInteger;

यह किसी को ऐसा करने से रोकता है क्योंकि शून्य करने योग्य मान प्रकार में मूल्य शून्य हो सकती है, जो वास्तव में इस मामले में होती है, और वह मान सामान्य मान प्रकार को असाइन नहीं किया जा सकता है। हालांकि संकलक इस कोड को अनुमति देगा,

int? myNullableInteger = null;
int myInteger = myNullableInteger.Value;

दूसरा कथन एक अपवाद को फेंकने का कारण बनता है क्योंकि System.Nullable.Value प्रॉपर्टी का उपयोग करने का कोई भी प्रयास एक अमान्य ऑपरेशन है यदि सिस्टम से बनाया गया प्रकार। टुलबल को टी का वैध मान असाइन नहीं किया गया है, जो इस में नहीं हुआ है मामला।

निष्कर्ष:

एक सामान्य मूल्य प्रकार के लिए एक शून्य मान प्रकार के मान को असाइन करने का एक उचित तरीका System.Nullable.HasValue प्रॉपर्टी का उपयोग यह पता लगाने के लिए है कि टी का वैध मान शून्य प्रकार के मान को असाइन किया गया है या नहीं:

int? myNullableInteger = null;
if (myNullableInteger.HasValue)
{
int myInteger = myNullableInteger.Value;
}

एक और विकल्प इस वाक्यविन्यास का उपयोग करना है:

int? myNullableInteger = null;
int myInteger = myNullableInteger ?? -1;

जिसके द्वारा सामान्य पूर्णांक myInteger को nullable पूर्णांक "myNullableInteger" का मान असाइन किया गया है यदि बाद वाले को वैध पूर्णांक मान असाइन किया गया हो; अन्यथा, myInteger को -1 का मान सौंपा गया है।







c# .net visual-studio .net-framework-version compiler-version