C # जब आप ऑब्जेक्ट इनिशियलाइज़ किए जाते हैं तो आपको घुंघराले ब्रेसिज़ में प्रॉपर्टी पैरामीटर निर्दिष्ट करने की अनुमति देता है। यह आपको चुनने और चुनने की अनुमति देता है कि कौन सी वस्तुओं को इनिशियलाइज़ करना है और कौन सी चूक को छोड़ना है।
दूसरी ओर, एक निर्माता, मापदंडों के एक निश्चित सेट के साथ कोड का एक एकल ब्लॉक चलाता है। तो एक ही प्रभाव प्राप्त करने के लिए आपको उन सभी गुणों के विभिन्न संयोजनों के साथ कई निर्माणकर्ता बनाने होंगे, जिन्हें आप आरंभीकृत करना चाहते हैं, जो कठिन हो सकता है।
var x = new Person {FirstName="Homer",LastName="Simpson",Age=47};
इस के बराबर है:
var x = new Person();
x.FirstName="Homer";
x.LastName="Simpson";
x.Age=47;
सिवाय इसके कि यह आंखों पर छोटा और यकीनन आसान है।
यह आपके प्रश्न में प्रदर्शित किए गए निर्माणों के लिए भी अनुमति देता है, जो बहुत ही थकाऊ होगा यदि आपको अस्थायी चर बनाने और उन्हें बाहर निकालना था जैसा कि मैंने उन्हें सूची में जोड़ने से पहले यहां किया था। (जो है कि आप इसे कैसे करते थे।) सभी को स्पष्ट रूप से परिभाषित निर्माता की आवश्यकता के बिना, जो आपके वांछित मापदंडों की सूची लेता है, जो उपलब्ध हो सकता है या नहीं।
इसके अलावा, ध्यान दें कि जब कोई कंस्ट्रक्टर एक निजी सेटर के साथ संपत्तियों की गणना कर सकता है, तो यह तकनीक (जैसा कि उपलब्ध उदाहरण से स्पष्ट होना चाहिए) केवल तभी काम करेगी जब आपके पास संपत्ति के लिए एक सार्वजनिक सेटर हो। यह भी ध्यान दें कि मेरे संक्षिप्त उदाहरण को डिफ़ॉल्ट रूप से डिफ़ॉल्ट (पैरामीटर रहित) कंस्ट्रक्टर कहा जाता है, इसलिए इसे प्रस्तुत करना होगा।