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

बताएं कि जेनेरिक C# में कैसे काम करते हैं

जेनरिक को C# के संस्करण 2.0 में जोड़ा गया था और यह भाषा की सबसे महत्वपूर्ण अवधारणाओं में से एक है। वे आपको पुन:प्रयोज्य, उच्च-प्रदर्शन कोड लिखने में सक्षम करते हैं जो संकलन समय पर टाइप-सुरक्षित है। जेनरिक का उपयोग करके, आप अपने कोड के बारे में पहले से जाने बिना एक प्रकार का उपयोग कर सकते हैं।

.NET में कई जगहों पर जेनरिक का उपयोग किया जाता है, जिसमें संग्रह, प्रतिनिधि और एसिंक्रोनस कोड शामिल हैं। जेनरिक के साथ, आपको संग्रह के आकार को पहले से जानने की आवश्यकता नहीं है, और आप किसी भी तत्व प्रकार के साथ जेनरिक का उपयोग कर सकते हैं, यहां तक ​​कि आपके कोड के लिए विशिष्ट कस्टम डेटा प्रकार भी। C# सामान्य प्रकार (वर्ग, इंटरफेस, आदि) और सामान्य तरीकों दोनों के लिए समर्थन प्रदान करता है।

जेनरिक में, आपके पास पैरामीटर टाइप करें और तर्क टाइप करें। यह उस विधि के समान है जिसमें पैरामीटर होते हैं, और आप विधि को तर्क देते हैं।

सामान्य प्रकार

एक सामान्य प्रकार घोषित करने के लिए सिंटैक्स में प्रकार के नाम के बाद कोण कोष्ठक में प्रकार पैरामीटर होते हैं। उदाहरण के लिए, लोकेटर नीचे दिए गए उदाहरण में एक सामान्य वर्ग है।

public class Locator<T>
{

}

Locator का एक उदाहरण बनाने के लिए, आप नए कीवर्ड का उपयोग करते हैं, उसके बाद वर्ग का नाम आता है। हालांकि, टी के बजाय, आप उस वास्तविक प्रकार को निर्दिष्ट करते हैं जिसे आप तर्क के रूप में पास करना चाहते हैं। निम्न उदाहरण स्ट्रिंग प्रकार को तर्क के रूप में पास करता है।

var stringLocator = new Locator<string>();

जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है, आप वर्ग विधियों पर टाइप पैरामीटर (T) का उपयोग कर सकते हैं।

public class Locator<T>{
   public IList<T> Items { get; set; }

      public T Locate(int index){
      return Items[index];
   }
}
var stringLocator = new Locator<string>();
string item = stringLocator.Locate(2);

जेनरिक का एक अतिरिक्त लाभ संपादक द्वारा प्रदान किया गया IntelliSense है। जब आप विजुअल स्टूडियो या वीएस कोड में stringLocator.Locate(4) टाइप करते हैं और मेथड के नाम पर होवर करते हैं; यह आपको दिखाएगा कि यह टी के बजाय एक स्ट्रिंग देता है। यदि आप स्ट्रिंग के अलावा किसी अन्य प्रकार के परिणाम को असाइन करने का प्रयास करते हैं, तो संकलक एक त्रुटि उठाएगा। उदाहरण के लिए,

// Error: Cannot implicitly convert type 'string' to 'int' [c-sharp]csharp(CS0029)
int item = stringLocator.Locate(2);

जेनेरिक बेस टाइप या जेनेरिक इंटरफेस से इनहेरिट करते समय एक सामान्य प्रकार टाइप पैरामीटर को टाइप तर्क के रूप में उपयोग कर सकता है। सामान्य LinkedList प्रकार अन्य के साथ सामान्य IEnumerable इंटरफ़ेस को लागू करता है।

public class LinkedList<T> : IEnumerable<T>

सामान्य तरीके

एक सामान्य विधि केवल एक विधि है जो एक प्रकार के पैरामीटर की घोषणा करती है जिसे आप विधि के अंदर और पैरामीटर और रिटर्न प्रकार के रूप में उपयोग कर सकते हैं। नीचे दिए गए उदाहरण में, Swap एक सामान्य तरीका है जो T प्रकार के दो पैरामीटर लेता है और T का एक उदाहरण देता है।

public class Swapper{
   public T Swap<T>(T first, T second){
      T temp = first;
      first = second;
      second = temp;
      return temp;
   }
}

सामान्य प्रकारों की तरह, जब आप एक सामान्य विधि का आह्वान करते हैं, तो यह एक जोरदार टाइप किया गया चर लौटाएगा।

var swapper = new Swapper();
int result = swapper.Swap<int>(5, 3);

कई सामान्य पैरामीटर होना संभव है। System.Collections.Generic नेमस्पेस में डिक्शनरी क्लास में कुंजी और मान के लिए दो प्रकार के पैरामीटर हैं।

public class Dictionary<TKey, TValue>

अंत में, यह जानना महत्वपूर्ण है कि सामान्य क्या हो सकता है। प्रकार के लिए, एनम को छोड़कर, सब कुछ सामान्य हो सकता है। इसमें शामिल हैं -

  • कक्षाएं
  • संरचनाएं
  • इंटरफ़ेस
  • प्रतिनिधि

प्रकार के सदस्यों के लिए, केवल विधियाँ और नेस्टेड प्रकार सामान्य हो सकते हैं। निम्नलिखित सदस्य सामान्य नहीं हो सकते -

  • फ़ील्ड
  • गुण
  • सूचकांक
  • निर्माता
  • इवेंट
  • फाइनलाइज़र

उदाहरण

using System;
using System.Collections.Generic;
class Program{
   static void Main(){
      var stringLocator = new Locator<string>(){
         Items = new string[] { "JavaScript", "CSharp", "Golang" }
      };
      string item = stringLocator.Locate(1);
      Console.WriteLine(item); // CSharp
      var swapper = new Swapper();
      int a = 5, b = 3;
      int result = swapper.Swap<int>(ref a, ref b);
      Console.WriteLine($"a = {a}, b = {b}");
   }
}
public class Locator<T>{
   public IList<T> Items { get; set; }
   public T Locate(int index){
      return Items[index];
   }
}
public class Swapper{
   public T Swap<T>(ref T first, ref T second){
      T temp = first;
      first = second;
      second = temp;
      return temp;
   }
}

आउटपुट

CSharp
a = 3, b = 5

  1. YouTube चैनल की सदस्यता कैसे काम करती है?

    YouTube सदस्यता प्रशंसकों के लिए स्वचालित मासिक दान करने के लिए अपने पसंदीदा YouTube चैनलों का समर्थन करने का एक तरीका है। सदस्यता YouTubers को वित्तीय सहायता प्रदान करती है और उन्हें पूर्णकालिक वीडियो बनाने में मदद करती है। इसके अलावा, सदस्यों को YouTube लाइव चैट के लिए सिर्फ़ सदस्यों के लिए पोस्ट

  1. Windows 10 में फ़ाइल प्रकार कैसे बदलें

    जब हम MP3, ZIP, या PDF जैसी फ़ाइलों का उल्लेख करते हैं, तो हम फ़ाइल प्रकार (या फ़ाइल एक्सटेंशन) की बात कर रहे होते हैं जो ऑपरेटिंग सिस्टम को यह पहचानने की अनुमति देता है कि यह किस प्रकार की फ़ाइल है और इसे खोलने के लिए किस सॉफ़्टवेयर की आवश्यकता है। इस प्रकार विंडोज या मैकओएस यह निर्धारित कर सकता है

  1. पीसी पर NAT टाइप कैसे बदलें

    21सेंट . में सदी, एक तेज़ इंटरनेट कनेक्शन तक पहुँच होना एक पूर्वापेक्षा है। लोग अपनी योजनाओं और उपकरणों को अपग्रेड करने के लिए सैकड़ों डॉलर खर्च करते हैं ताकि यह सुनिश्चित हो सके कि उनकी इंटरनेट स्पीड में कोई कमी नहीं है। हालांकि, अपने सर्वोत्तम प्रयासों के बावजूद, कई उपयोगकर्ता अपना सिर खुजलाते रह