विज़ुअल स्टूडियो 2017 और C#7.0 का उपयोग कर एक विधि से टपल को वापस करने में असमर्थ




.net visual-studio (2)

मैंने एक सप्ताह पहले जारी किया गया Visual Studio 2017 समुदाय स्थापित किया है, और मैंने C # 7 की नई विशेषताओं की खोज शुरू कर दी है।

इसलिए मैंने एक सरल विधि बनाई जो दो मान लौटाती है:

public class Program
{
    public static void Main(string[] args)
    {
        (int sum, int count) a = ReturnTwoValues();
    }

    static (int sum, int count) ReturnTwoValues() => (1, 1);
}

कंपाइलर एक त्रुटि उत्पन्न कर रहा है:

CS8137 त्रुटि टुपल्स का उपयोग करने वाले किसी वर्ग या सदस्य को परिभाषित नहीं कर सकती है क्योंकि कंपाइलर को आवश्यक प्रकार 'System.Runtime.CompilerServices.TupleElementNamesAttribute' नहीं मिल सकता है। क्या आप एक संदर्भ याद कर रहे हैं?

मैंने इस नाम के साथ फ्रेमवर्क में एक संदर्भ खोजने की कोशिश की, लेकिन भाग्य नहीं!

अगर हमें C # 7.0 सुविधाओं का उपयोग करने के लिए अतिरिक्त सामान की आवश्यकता है, तो यह बहुत अजीब है कि हमें हर परियोजना के लिए ऐसा करने की आवश्यकता है?!


I बस Roslyn पर इस पृष्ठ के माध्यम से भाग गया जिसमें इस काम को करने के लिए निम्नलिखित चरणों का वर्णन है:

  1. C # प्रोजेक्ट प्रारंभ करें
  2. System.ValueTuple पैकेज को NuGet (पूर्व-रिलीज़) से संदर्भ जोड़ें

उन चरणों का पालन करते हुए, यह अब काम कर रहा है। लेकिन यह वास्तव में बहुत अजीब है कि हमें हर एक परियोजना के लिए ऐसा करने की आवश्यकता है जो हम शुरू करते हैं! उम्मीद है कि यह तब तय होगा जब हम आधिकारिक रिलीज़ पर पहुँचेंगे!


मैंने .Net 4.7 फ्रेमवर्क को स्थापित करने के बाद यह त्रुटि प्राप्त करना शुरू किया, और अपनी परियोजना को लक्ष्य .Net 4.7 में बदल दिया

ValueTuple को अब .Net 4.7 के साथ शामिल किया गया है, इसलिए आपको ValueTuple को मैन्युअल रूप से संदर्भित नहीं करना है।

संकलित त्रुटि को ठीक करने के लिए मुझे बस इतना करना था कि अपने प्रोजेक्ट के संदर्भ से System.ValueTuple का संदर्भ हटा दें।








c#-7.0