ऐसा इसलिए हो सकता है क्योंकि कंपाइलर डिफ़ॉल्ट रूप से विभिन्न टारगेट फ्रेमवर्क के लिए अलग-अलग C # भाषा संस्करणों का उपयोग करता है।
डिफ़ॉल्ट C # भाषा को ओवरराइड करने के लिए, प्रोजेक्ट फ़ाइल में जोड़ें (जैसा कि प्रश्न में सुझाव दिया गया है):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
या:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
विभिन्न लक्ष्य रूपरेखाओं के लिए डिफ़ॉल्ट C # भाषा संस्करणों के लिए C # भाषा संस्करण देखें और C # भाषा संस्करण को मैन्युअल रूप से कैसे चुनें।
स्टैक ओवरफ्लो उत्तर भी देखें। C # 8 .NET फ्रेमवर्क का समर्थन करता है? इस विषय पर अधिक जानकारी के लिए।
यहाँ C # भाषा संस्करण लेख का हिस्सा है :
सी # भाषा संस्करण
नवीनतम सी # संकलक आपकी परियोजना के लक्ष्य ढांचे या रूपरेखा के आधार पर एक डिफ़ॉल्ट भाषा संस्करण निर्धारित करता है। ऐसा इसलिए है क्योंकि C # भाषा में ऐसी विशेषताएं हो सकती हैं जो हर .NET कार्यान्वयन में उपलब्ध प्रकार या रनटाइम घटकों पर निर्भर करती हैं। यह यह भी सुनिश्चित करता है कि आपकी परियोजना के लिए जो भी लक्ष्य बनाया गया है, उसके लिए आपको डिफ़ॉल्ट रूप से सबसे अधिक संगत भाषा संस्करण प्राप्त हो।
इस आलेख में नियम Visual Studio 2019 या .NET Core 3.0 SDK के साथ वितरित कंपाइलर पर लागू होते हैं। C # कंपाइलर जो Visual Studio 2017 इंस्टॉलेशन का हिस्सा हैं या पहले .NET कोर SDK वर्जन डिफ़ॉल्ट रूप से C # 7.0 को टारगेट करते हैं।
चूक
कंपाइलर इन नियमों के आधार पर एक डिफ़ॉल्ट निर्धारित करता है:
--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.NET Core | 3.x | C# 8.0
.NET Core | 2.x | C# 7.3
.NET Standard | 2.1 | C# 8.0
.NET Standard | 2.0 | C# 7.3
.NET Standard | 1.x | C# 7.3
.NET Framework | all | C# 7.3
--------------------------------------------------------
एक डिफ़ॉल्ट को ओवरराइड करें
यदि आपको अपना सी # संस्करण स्पष्ट रूप से निर्दिष्ट करना है, तो आप ऐसा कई तरीकों से कर सकते हैं:
- अपनी प्रोजेक्ट फ़ाइल को मैन्युअल रूप से संपादित करें।
- एक उपनिर्देशिका में कई परियोजनाओं के लिए भाषा संस्करण सेट करें।
- -Langversion संकलक विकल्प कॉन्फ़िगर करें।
प्रोजेक्ट फ़ाइल संपादित करें
आप अपनी परियोजना फ़ाइल में भाषा संस्करण सेट कर सकते हैं। उदाहरण के लिए, यदि आप स्पष्ट रूप से पूर्वावलोकन सुविधाओं तक पहुँच चाहते हैं, तो इस तरह से एक तत्व जोड़ें:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
मान preview
नवीनतम उपलब्ध पूर्वावलोकन C # भाषा संस्करण का उपयोग करता है जो आपके संकलक का समर्थन करता है।
कई प्रोजेक्ट कॉन्फ़िगर करें
कई प्रोजेक्ट्स को कॉन्फ़िगर करने के लिए, आप एक Directory.Build.props फ़ाइल बना सकते हैं जिसमें <LangVersion>
तत्व शामिल है । आप आमतौर पर अपने समाधान निर्देशिका में ऐसा करते हैं। एक निर्देशिका में निम्नलिखित जोड़ें। अपनी समाधान निर्देशिका में Bild.props फ़ाइल:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
अब, उस फ़ाइल वाली निर्देशिका के प्रत्येक उपनिर्देशिका में बनाता है पूर्वावलोकन C # संस्करण का उपयोग करेगा। अधिक जानकारी के लिए, अपने निर्माण को अनुकूलित करें पर लेख देखें ।