Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Array क्लास द्वारा इम्प्लीमेंटेड इंटरफ़ेस (ICloneable, IList, आदि)


परिचय

System.Array क्लास कई इंटरफ़ेस इम्प्लीमेंट करती है, जिससे एरे को कलेक्शन की तरह उपयोग किया जा सकता है।

प्रमुख इंटरफ़ेस

इंटरफ़ेसउद्देश्य
ICloneableClone() मेथड प्रदान करता है (शैलो कॉपी)।
IListइंडेक्स-आधारित एक्सेस, जोड़/हटाना (निश्चित आकार के लिए सीमित)।
ICollectionCount, CopyTo, थ्रेड-सेफ्टी प्रॉपर्टी।
IEnumerableforeach पुनरावृत्ति सक्षम करता है।
IStructuralComparableसंरचनात्मक तुलना।
IStructuralEquatableसंरचनात्मक समानता जांच।

उदाहरण 1: ICloneable से एरे क्लोन करना

using System;

class Program
{
    static void Main()
    {
        string[] arr = { "one", "two", "three", "four", "five" };
        string[] arrCloned = arr.Clone() as string[]; // ICloneable

        Console.WriteLine("Original: " + string.Join(",", arr));
        Console.WriteLine("Cloned:   " + string.Join(",", arrCloned));

        // शैलो कॉपी: रेफरेंस टाइप एलिमेंट साझा होते हैं
        arr[0] = "changed";
        Console.WriteLine("After change - Original: " + arr[0]);   // changed
        Console.WriteLine("After change - Cloned:   " + arrCloned[0]); // changed (साझा रेफरेंस)
    }
}

उदाहरण 2: कस्टम क्लास में ICloneable इम्प्लीमेंट करना

using System;

class Car : ICloneable
{
    public int Width { get; set; }
    public Car(int w) { Width = w; }

    public object Clone()
    {
        return new Car(this.Width); // डीप कॉपी (वैल्यू टाइप के लिए)
    }

    public override string ToString() => $"Width = {Width}mm";
}

class Program
{
    static void Main()
    {
        Car car1 = new Car(1695);
        Car car2 = (Car)car1.Clone();
        Console.WriteLine(car1);
        Console.WriteLine(car2);
    }
}

नोट

  • एरे का Clone() शैलो कॉपी लौटाता है।
  • रेफरेंस टाइप एलिमेंट के लिए, दोनों एरे समान ऑब्जेक्ट्स इंगित करते हैं।
  • IEnumerable के कारण foreach और LINQ काम करते हैं।
  1. - C# में कमेंट्स क्या हैं

    कमेंट्स कोड समझाने के लिए उपयोग किए जाते हैं। कंपाइलर कमेंट एंट्रीज़ को इग्नोर करता है। C# प्रोग्राम्स में मल्टीलाइन कमेंट्स /* से शुरू होते हैं और */ कैरेक्टर्स से समाप्त होते हैं। मल्टी-लाइन कमेंट्स /* The following is a mult-line comment In C# /* /*...*/ को कंपाइलर इग्नोर करता है और इसे प्रोग्राम

  1. - C# में क्लासेस क्या हैं

    जब आप एक क्लास डिफाइन करते हैं, तो आप एक डेटा टाइप के लिए ब्लूप्रिंट डिफाइन करते हैं। ऑब्जेक्ट्स क्लास के इंस्टेंसेस हैं। मेथड्स और वेरिएबल्स जो एक क्लास का गठन करते हैं, उन्हें क्लास के मेंबर्स कहा जाता है। एक क्लास डेफिनिशन class कीवर्ड से शुरू होती है जिसके बाद क्लास नाम आता है; और क्लास बॉडी जो

  1. - C# में क्लास के मेंबर वेरिएबल्स क्या हैं?

    क्लास एक ब्लूप्रिंट है जिसमें C# में मेंबर वेरिएबल्स और फंक्शन्स होते हैं। यह ऑब्जेक्ट के व्यवहार का वर्णन करता है।मेंबर वेरिएबल्स क्या हैं, यह जानने के लिए क्लास का सिंटैक्स देखें:<एक्सेस स्पेसिफायर> class class_name {    // मेंबर वेरिएबल्स    <एक्सेस स्पेसिफायर> <