प्राथमिक निर्माणकर्ता अब VS2015 में संकलित नहीं हैं


98

इस दिन तक, मैं प्राथमिक निर्माणकर्ताओं का उपयोग कर सकता था, जैसे:

public class Test(string text)
{
    private string mText = text;
}

ऐसा करने में सक्षम होने के लिए, पिछले विज़ुअल स्टूडियो CTP में, मुझे इसे csproj-file में जोड़ना था:

<LangVersion>Experimental</LangVersion>

किसी भी तरह, यह अब विजुअल स्टूडियो 2015 पूर्वावलोकन (साथ या बिना LangVersion) में काम नहीं करता है । क्या किसी के पास कोई विचार है कि क्या हो सकता है?



15
क्या मैं एकमात्र ऐसा व्यक्ति था जिसने इस सुविधा को व्यर्थ समझा? मुझे इसका वास्तविक लाभ कभी नहीं मिला।
TyCobb

2
यह थोड़ा अजीब लगा, लेकिन मुझे इसके पीछे के दर्शन पसंद हैं!
मट्को

14
कि एक शर्म की बात है। जब आप F # पर जाते हैं तो आप प्राथमिक निर्माणकर्ताओं का खुलकर उपयोग कर सकते हैं। F #, csharpers पर जाएं, आपकी नई भाषा सुविधाएँ पहले से मौजूद हैं;)
स्क्रू टीपी 13'14

3
@ टाइबॉब, प्राथमिक कंस्ट्रक्टर निर्भरता इंजेक्शन के साथ पूरी तरह से आवश्यक हैं: आप प्रत्येक निर्भरता के नाम (और प्रकार) को चार बार दोहराए बिना, कंस्ट्रक्टर इंजेक्शन (संपत्ति इंजेक्शन के विपरीत) का उपयोग कर सकते हैं।
फ्योदोर सोइकिन

जवाबों:


143

क्या किसी के पास कोई विचार है कि क्या हो सकता है?

Yup - प्राथमिक कंस्ट्रक्टरों को C # 6 की योजनाओं से हटा दिया गया है, वे बाद के संस्करण में किसी न किसी रूप में अच्छी तरह से दिख सकते हैं, लेकिन वे C # 6 में नहीं हैं।

देखें "भाषा सुविधा सेट में परिवर्तन" अधिक जानकारी के लिए टीम से पोस्ट।


यह वास्तव में दुखद है! वे काफी उपयोगी लग रहे थे।
प्रति Lundberg

@PerLundberg: वे C # 7 में भी नहीं हैं। मुझे संदेह है कि C # डिज़ाइन टीम C # 8 में रिकॉर्ड प्रकारों को फिर से प्रस्तुत करेगी, लेकिन इसका मतलब यह नहीं है कि वे निश्चित रूप से इसे वहां बनाएंगे।
जॉन स्कीट

अच्छे की कामना करते है। :) मैंने उन्हें कुछ C # पोस्टिंग हाँ में उल्लेखित देखा, और यह "सरल वर्ग" समस्या को हल करने और हल करने के लिए एक और दिलचस्प तरीका लग रहा था।
प्रति लंडबर्ग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.