2016-12-15 7 views
17

नए सी # 7.0 वैल्यूटुपल्स को देखते हुए, मुझे आश्चर्य है कि क्या वे Anonymous Types को पूरी तरह से बदल देंगे। मैं समझता हूं कि ValueTuples structs हैं और इसलिए Anonymous Types से भिन्न भिन्न हैं जो कक्षाएं हैं। मुझे उपयोग-केस नहीं दिख रहा है, हालांकि, जिसमें Anonymous Type का उपयोग ValueTuple पर करना पसंद करेगा।सी # 7.0 वैल्यूटुप बनाम बेनामी प्रकार

क्या कोई उपयोग-मामले हैं जहां Anonymous Type का उपयोग कर ValueTuples का उपयोग सी # 7.0 में किया जा रहा है?

+0

[बेनामी प्रकार और टुपल] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/2613829/anonymous-type-and-tuple) –

+7

@ SørenD.Ptæus यह सवाल 'Tuple' के संबंध में नहीं है C# 7.0 'ValueTuple'। 'ValueTuple'' Tuple' से बहुत अलग कार्य करता है। –

+0

क्या आपने लिंक क्वेरीज़ में ValueTuples का उपयोग करने का प्रयास किया है (मेरे पास कोशिश करने के लिए हाथ में एक सी # 7 कंपाइलर नहीं है) – Console

उत्तर

12

बेनामी प्रकार अपरिवर्तनीय हैं, tuples नहीं हैं। यह इस तथ्य में परिलक्षित होता है कि अज्ञात प्रकार गुणों का पर्दाफाश करते हैं, tuples फ़ील्ड का पर्दाफाश करते हैं। डेटा बाध्यकारी लगभग हमेशा गुणों की आवश्यकता होती है।

मौजूदा कोड के बहुत सारे केवल संदर्भ प्रकारों के साथ काम करते हैं, मूल्य प्रकारों के साथ नहीं। जो विशेष रूप से दिमाग में आता है वह इकाई फ्रेमवर्क में अनुमान हैं: मूल्य प्रकारों के अनुमानों को लागू नहीं किया जाता है।

+1

इस प्रश्न का उत्तर देने के लिए बहुत सारी जानकारी की आवश्यकता होगी। हालांकि, मुझे नहीं लगता कि यह बहुत व्यापक है। यह एक [समुदाय विकी] (http://stackoverflow.com/help/privileges/community-wiki) के लिए एक अच्छा उम्मीदवार हो सकता है। –

+0

हालांकि एक अच्छा जवाब है, मैं नहीं देखता कि यह ओपीएस प्रश्न का उत्तर कैसे देता है "क्या कोई उपयोग केस है जो दूसरे पर इस्तेमाल किया जाएगा"। –

+3

@YuvalItzchakov एह? यदि आप डेटा बाध्यकारी का उपयोग करते हैं, जिसके लिए गुणों की आवश्यकता होती है, तो आपको गुणों की आवश्यकता होती है, जिसका अर्थ है कि आप नए tuples का उपयोग नहीं कर सकते हैं। यदि आप ईएफ में अनुमानों का उपयोग करते हैं, तो आपको संदर्भ प्रकारों का उपयोग करने की आवश्यकता है, आप नए tuples का उपयोग नहीं कर सकते हैं। यह दो बहुत विशिष्ट मामलों को कैसे नहीं देता है जहां आप अनाम प्रकारों का उपयोग कर सकते हैं, लेकिन नए tuples नहीं? – hvd

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