दिलचस्प पोस्ट
MySQL में नया उपयोगकर्ता बनाएं और इसे एक डेटाबेस में पूर्ण पहुंच प्रदान करें PHP 7 में MySQLi एक्सटेंशन को कैसे सक्षम करें? मैं c ++ में एक सूची से डुप्लिकेट मान कैसे निकाल सकता हूं? जावास्क्रिप्ट में आईएसओ तारीख को मिलीसेकंड में परिवर्तित करें अद्वितीय / यादृच्छिक नामों के साथ फाइलें स्टोर करें कोर डेटा के एनस्पिवेटक्वाय्यूकंक्रार्जेसटैप और धागे के बीच ऑब्जेक्ट साझा करना क्लास चर के संबंध में अप-कास्टिंग और डाउन-कास्टिंग के बीच अंतर क्या है एक स्टैंडअलोन निष्पादन योग्य * बाइनरी * के लिए एक लिनक्स शैल स्क्रिप्ट को कैसे संकलित करें (जैसे नहीं, उदाहरण के लिए केवल सीएमओडी 755)? कोड से androidManifest के "debuggable" मान हो रहा है? एक्स में अंतर क्या है: संदर्भ और तत्व नाम? सीएसएस छवियों को लोड करना MYSQL – तुर्की चरित्र शुद्ध वर्चुअल फ़ंक्शंस में एक इनलाइन परिभाषा नहीं हो सकती है। क्यूं कर? MySQL में प्राथमिक कुंजी निकालें VueJS: क्यों "यह" अपरिभाषित है?

प्रारंभिक वाक्यविन्यास

मुझे C # 3 initializer सिंटैक्स पसंद है और इसका बहुत उपयोग होता है, लेकिन आज रिफ्लेक्टर में दिखते हुए, निम्नलिखित बातों को सामने आया:

var binding = new WSHttpBinding { ReaderQuotas = { MaxArrayLength = 100000 }, MaxReceivedMessageSize = 10485760 }; 

सबसे पहले मैंने सोचा कि यह एक गलती थी, लेकिन यह संकलन करता है! लगता है कि मैं अब भी हर समय नई चीजें सीख रहा हूं। 🙂

मैं क्या बता सकता हूं, यह MaxArrayLength के MaxArrayLength प्रॉपर्टी की MaxArrayLength संपत्ति सेट करता है MaxArrayLength

क्या यह वाक्यविन्यास एक नया ReaderQuotas ऑब्जेक्ट बनाते हैं और फिर संपत्ति को सेट करते हैं, या यह पहले से आरंभ करने वाली संपत्ति को ग्रहण करता है? क्या यह सामान्य तरीका है कि 'बाल' गुणों को प्रारंभ करने के लिए उपयोग किया जाएगा?

मैं सिंटैक्स को थोड़ा भ्रमित कर रहा हूं …

Solutions Collecting From Web of "प्रारंभिक वाक्यविन्यास"

नहीं, जो नई वस्तुएं नहीं बनाते हैं, जब तक आप = new SomeType {...} उपयोग नहीं करते हैं = new SomeType {...} :

 var binding = new WSHttpBinding { ReaderQuotas = new XmlDictionaryReaderQuotas { MaxArrayLength = 100000 }, MaxReceivedMessageSize = 10485760 }; 

आपका उदाहरण मौजूदा उप-ऑब्जेक्ट्स के गुणों को सेट करने के लिए प्रारंभिक सिंटैक्स दिखाता है। संग्रह पर "जोड़ें" विधियां कॉल करने के लिए एक समान सिंटैक्स भी है

आपका कोड मोटे तौर पर निम्नानुसार है:

 var binding = new WSHttpBinding(); binding.ReaderQuotas.MaxArrayLength = 100000; binding.MaxReceivedMessageSize = 10485760; 

यह थोड़ा भ्रमित है, मैं सहमत हूं।

आपको विनिर्देश के खंड 7.6.10.2 को पढ़ना चाहिए; यह सब समझाया गया है उदाहरण के लिए:

एक सदस्य प्रारंभकर्ता जो समानता के संकेत के बाद एक अभिव्यक्ति निर्दिष्ट करता है, उस पर कार्रवाई की जाती है जैसे क्षेत्र या संपत्ति के लिए असाइनमेंट के रूप में।

एक सदस्य प्रारंभकर्ता जो बराबर चिह्न के बाद एक ऑब्जेक्ट आरंभकर्ता निर्दिष्ट करता है वह नेस्टेड ऑब्जेक्ट इनिलाइज़र है, यानी एक एम्बेडेड ऑब्जेक्ट का आरम्भिकरण। फ़ील्ड या प्रॉपर्टी के लिए एक नया मान देने के बजाय, नेस्टेड ऑब्जेक्ट आरंभकर्ता में असाइनमेंट को फ़ील्ड या प्रॉपर्टी के सदस्यों के लिए असाइनमेंट मानता है। नेस्टेड ऑब्जेक्ट इनिस्टाइज़र को एक वैल्यू टाइप के साथ गुणों के साथ, या एक मूल्य प्रकार के साथ केवल-पढ़ने के लिए फ़ील्ड पर लागू नहीं किया जा सकता।

एक सदस्य प्रारंभकर्ता जो बराबर चिह्न के बाद संग्रह प्रारंभकर्ता निर्दिष्ट करता है वह एक एम्बेडेड संग्रह का प्रारंभ होता है। फ़ील्ड या प्रॉपर्टी के लिए एक नया संग्रह देने के बजाय, प्रारंभकर्ता में दिए गए तत्व फ़ील्ड या प्रॉपर्टी द्वारा संदर्भित संग्रह में जोड़े जाते हैं।