खोज…


वाक्य - विन्यास

  • SomeClass sc = new SomeClass {Property1 = value1, Property2 = value2, ...};
  • SomeClass sc = new SomeClass (param1, param2, ...) {Property1 = value1, Property2 = value2, ...}

टिप्पणियों

कंस्ट्रक्टर कोष्ठक केवल तभी छोड़ा जा सकता है जब टाइप किया जा रहा है, जिसमें डिफ़ॉल्ट (पैरामीटर रहित) कंस्ट्रक्टर उपलब्ध है।

सरल उपयोग

ऑब्जेक्ट एनिलाइज़र तब आसान होते हैं जब आपको ऑब्जेक्ट बनाने और तुरंत कुछ गुण सेट करने की आवश्यकता होती है, लेकिन उपलब्ध कंस्ट्रक्टर पर्याप्त नहीं होते हैं। कहो कि तुम्हारे पास एक वर्ग है

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }

    // the rest of class definition
}

एक इनिशियलाइज़र के साथ वर्ग का एक नया उदाहरण शुरू करने के लिए:

Book theBook = new Book { Title = "Don Quixote", Author = "Miguel de Cervantes" };

इसके बराबर है

Book theBook = new Book();
theBook.Title = "Don Quixote";
theBook.Author = "Miguel de Cervantes";

अनाम प्रकार के साथ उपयोग

ऑब्जेक्ट इनिशियलाइज़र अनाम प्रकारों को इनिशियलाइज़ करने का एकमात्र तरीका है, जो कंपाइलर द्वारा उत्पन्न प्रकार हैं।

var album = new { Band = "Beatles", Title = "Abbey Road" };

उस कारण के लिए ऑब्जेक्ट इनिशियलाइज़र का उपयोग LINQ सेलेक्ट क्वेरीज़ में व्यापक रूप से किया जाता है, क्योंकि वे यह निर्दिष्ट करने के लिए एक सुविधाजनक तरीका प्रदान करते हैं कि आप रुचि रखने वाले ऑब्जेक्ट के किन हिस्सों में रुचि रखते हैं।

var albumTitles = from a in albums 
                  select new 
                  { 
                     Title = a.Title, 
                     Artist = a.Band 
                  };

गैर-डिफ़ॉल्ट निर्माणकर्ताओं के साथ उपयोग

यदि आवश्यक हो तो आप ऑब्जेक्ट इनिशियलाइज़र को कंस्ट्रक्टर के साथ जोड़ सकते हैं। उदाहरण के लिए एक वर्ग को इस प्रकार परिभाषित करें:

public class Book {
    public string Title { get; set; }
    public string Author { get; set; }

    public Book(int id) {
        //do things
    }

    // the rest of class definition
}

var someBook = new Book(16) { Title = "Don Quixote", Author = "Miguel de Cervantes" }

यह पहले Book(int) कंस्ट्रक्टर के साथ एक Book को तत्काल भेज देगा, फिर प्रत्येक संपत्ति को इनिशियलाइज़र में सेट करेगा। यह इसके बराबर है:

var someBook = new Book(16);
someBook.Title = "Don Quixote";
someBook.Author = "Miguel de Cervantes";


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow