Interface Definition and Implementation c# In Hindi
C# प्रोग्रामिंग लैंग्वेज में इंटरफ़ेस एक क्लास ऑब्जेक्ट प्रोटोटाइप अप्लाई करने का मेथड होता है, जो क्लास के लिए नई मेथड, प्रॉपर्टीज़, इवेंट्स, या इंडेक्सर्स, का एक प्री-डिफाइन ग्रुप सेट डिफाइन करता है. जिसे किसी यूजर डिफाइन क्लास या स्ट्रक्चर में अप्लाई या इम्प्लीमेंट करना होता है। क्लास इंटरफ़ेस में इन क्लास मेंबर्स का कोई इम्प्लीमेंटेशन प्रोवाइड नहीं कर सकता है, यह क्लास में सिर्फ एक मेथड सिग्नेचर को डिफाइन करता है। जो किसी यूजर डिफाइन क्लास या उसके स्ट्रक्चर इंटरफ़ेस को इम्प्लीमेंट या अप्लाई करते हैं, जिसमे उन्हें क्लास इंटरफ़ेस द्वारा डिक्लेयर किए गए सभी क्लास मेंबर्स के लिए इम्प्लीमेंटेशन प्रोवाइड करना होगा।

So, let’s explore the Interface Definition and Implementation concepts in C#.
Interface Definition in C#.
C# प्रोग्राम में एक क्लास इंटरफ़ेस को इंटरफ़ेस कीवर्ड का यूज़ करके डिक्लेअर या डिफाइन किया जाता है। यूजर डिफाइन क्लास इंटरफ़ेस में मेंबर्स डिफ़ॉल्ट रूप से पब्लिक और एब्स्ट्रैक्ट नेचर में डिफाइन होते हैं, इसका मतलब है कि क्लास में डिफाइन डिक्लेअर इंटरफ़ेस का कोई इम्प्लीमेंटेशन प्रोवाइड नहीं होता है।
Special Features of C# Interface Implementation.
- No Implementation – किसी क्लास में यूजर डिफाइन इंटरफ़ेस में क्लास मेथड बॉडीज़ या फ़ील्ड्स नहीं हो सकते है। क्लास इंटरफ़ेस में सिर्फ़ एक मेथड सिग्नेचर (जैसे, क्लास मेथड का नाम, रिटर्न डाटा टाइप, और वेरिएबल या पैरामीटर्स) आदि डिफाइन हो सकते हैं।
- No Constructor or Destructor – किसी क्लास में यूजर डिफाइन इंटरफ़ेस में कंस्ट्रक्टर या डिस्ट्रक्टर ऑब्जेक्ट कंस्ट्रक्ट और डिस्टक्ट नहीं हो सकते है।
- Implicit Public Members – इंटरफ़ेस में डिफाइन सभी मेंबर्स इम्प्लिसिटली पब्लिक नेचर में डिफाइन होते हैं, और C# यूजर कोई अन्य क्लास इंटरफ़ेस एक्सेस मॉडिफ़ायर जैसे, प्राइवेट, प्रोटेक्टेड, आदि का यूज़ नहीं कर सकते है।
- Multiple Inheritance – एक यूजर डिफाइन क्लास कई इंटरफ़ेस को क्लास में इम्प्लीमेंट कर सकती है, जहा एब्स्ट्रैक्ट क्लास के अपोसिट, जिसमे C# यूजर को सिर्फ़ एक सिंगल इनहेरिटेंस फीचर की परमिशन होती है।
Syntax for defining a class interface in C#.
public interface ICourse
{
void Select(); // यहाँ क्लास मेथड में कोई सिग्नेचर, या कोई बॉडी नहीं है
void Selection(); // यहाँ मेथड सिग्नेचर, लेकिन कोई बॉडी नहीं है
}
In the above example, class interface.
- यहाँ इस सिंटेक्स में ICourse इंटरफ़ेस एक यूजर डिफाइन इम्प्लीमेंटेशन मेथड है।
- जिसमे दो यूजर डिफाइन Select() और Selection() मेथड सिग्नेचर क्रिएट किए गए हैं, जिन्हें इस इंटरफ़ेस को क्लास में इम्प्लीमेंट करने वाले किसी भी क्लास द्वारा इम्प्लीमेंट किया जाना चाहिए।
Interface Implementation in C#.
एक यूजर डिफाइन क्लास या स्ट्रक्चर इंटरफ़ेस में डिक्लेअर किए गए हर क्लास मेथड के लिए मेथड बॉडी प्रोवाइड कर क्लास इंटरफ़ेस को इम्प्लीमेंट करता है। जहा क्लास में यह इंडीकेट करने के लिए : interface_name सिंटैक्स का का यूज़ किया जाता है. जिससे कि वह मौजूदा क्लास में इंटरफ़ेस को कैसे इम्प्लीमेंट करता है।
Important elements for implementing an interface in C#.
- Provide method implementations – यूजर डिफाइन प्रोग्राम क्लास को इंटरफ़ेस में डिक्लेयर किए गए सभी क्लास मेथड और उसके प्रॉपर्टीज़ के लिए इम्प्लीमेंटेशन प्रोवाइड करना होगा।
- Methods cannot be omitted – यदि कोई यूजर डिफाइन क्लास इंटरफ़ेस को मौजूदा क्लास में इम्प्लीमेंट करता है, तो उसे मौजूदा प्रोग्राम में इंटरफ़ेस के सभी मेथड को प्रॉपर इम्प्लीमेंट करना होगा, या यदि वह क्लास इंटरफ़ेस को पूरी तरह से इम्प्लीमेंट नहीं करता है. तो उसे किसी क्लास में एब्सट्रैक्ट के रूप में मार्क या इंडीकेट किया जाना चाहिए।
Syntax for implementing a class interface in C#.
using System;
public class Java : ICourse
{
// here we Implementing the Select method from ICourse interface
public void Select()
{
Console.WriteLine(” Java language selected.”);
}
// here we Implementing the Selection method from ICourse
public void Selection()
{
Console.WriteLine(“Select your desire course. .”);
}
}
Here’s an example of implementing a class interface.
- यहाँ इस प्रोग्राम में क्लास Java ICourse इंटरफ़ेस को इम्प्लीमेंट करता है।
- यह Select() और Selection() दोनों क्लास मेथड के लिए स्ट्रांग इम्प्लीमेंटेशन प्रोवाइड करता है।
Using Interfaces in C#.
जब यूजर डिफाइन क्लास इंटरफ़ेस किसी क्लास द्वारा डिक्लेअर डिफाइन और इम्प्लीमेंट कर दिया जाता है, तो C# यूजर जरूरत के अनुसार क्लास के नए ऑब्जेक्ट क्रिएट कर सकते हैं, और क्लास इंटरफ़ेस द्वारा डिफाइन किए गए क्लास मेथड को इसमें कॉल कर सकते हैं। इसके साथ ही C# यूजर इम्प्लीमेंट करने वाली पर्टिकुलर क्लास के ऑब्जेक्ट को रेफर करने के लिए इंटरफ़ेस टाइप मेथड का यूज़ कर सकते हैं।
Example of using an interface in C#.
using System;
public class Program
{
static void Main()
{
// here we Creating an object of the class Java
ICourse course = new Java();
// here it Calling methods defined by ICourse
course.Select(); // Result is – Java language selected.
course.Selection(); // Result is – Select your desire course.
}
}
Here in the Using Interfaces example.
- यहाँ ऊपर इस एक्साम्प्ल में ICourse टाइप का एक ऑब्जेक्ट क्रिएट किया गया है, लेकिन यह रियल में एक Java ऑब्जेक्ट है।
- चाहे यहाँ रेफरेंस ICourse टाइप का हो, हम Select() और Selection() क्लास मेथड को कॉल कर सकते हैं, क्योंकि यहाँ Java क्लास इन मेथड को इम्प्लीमेंट करता है।
Multiple Interface Implementation in C#.
C# प्रोग्राम में एक क्लास या स्ट्रक्चर एक से ज़्यादा कई क्लास इंटरफ़ेस को इम्प्लीमेंट कर सकता है, जिससे यह यूजर डिफाइन क्लास इंटरफ़ेस में एक समय में कई रोल या कैपेबिलिटी को होल्ड कर सकता है। यह क्लास इंटरफ़ेस को इम्प्लीमेंट में कई सोर्स से बिहेवियर को ग्रुप करने के लिए अधिक यूज़फुल फीचर है.
Example of multiple interface implementation in C#.
using System;
public interface ICourse
{
void Select();
}
public interface ISelectable
{
void Selection();
}
public class Java : ICourse, ISelectable
{
public void Select()
{
Console.WriteLine(“Java language selected.”);
}
public void Selection()
{
Console.WriteLine(“Select your desire course.”);
}
}
public class Program
{
static void Main()
{
Java java = new Java();
java.Select(); // Result is – Java language selected.
java.Selection(); // Result is – Select your desire course.
}
}
Multiple Interface Implementation Explanation.
- यहाँ इस एक्साम्प्ल में Java ICourse और ISelectable दोनों क्लास इंटरफ़ेस को इम्प्लीमेंट करता है, जो Select() और Selection() दोनों क्लास मेथड के लिए इम्प्लीमेंटेशन प्रोवाइड करता है.
- किसी प्रोग्राम में एक क्लास कितने भी इंटरफ़ेस को इम्प्लीमेंट कर सकती है, और उन सभी के लिए बिहेवियर प्रोवाइड कर सकती है.
Interface Inheritance in C#.
किसी यूजर डिफाइन क्लास में इंटरफ़ेस को दूसरे अन्य इंटरफ़ेस से उसकी प्रॉपर्टीज को इनहेरिट कर सकते हैं। जब C# प्रोग्राम में कोई इंटरफ़ेस दूसरे से क्लास प्रॉपर्टीज को इनहेरिट करता है, तो डिराइव्ड सबक्लास इंटरफ़ेस को बेस इंटरफ़ेस के सभी क्लास फील्ड मेंबर एलिमेंट मिल जाते हैं, और कोई भी क्लास जो डिराइव्ड या सबक्लास इंटरफ़ेस को इम्प्लीमेंट करती है. उसे उस क्लास में दोनों इंटरफ़ेस के सभी क्लास मेंबर के लिए इम्प्लीमेंटेशन प्रोवाइड करना होगा।
Example of class interface inheritance in C#.
using System;
public interface ICourse
{
void Select();
}
public interface ISelectable
{
void Selection();
}
public interface ISelectableCourse : ICourse, ISelectable
{
void Eligible();
}
public class Java : ISelectableCourse
{
public void Select()
{
Console.WriteLine(“Select your desire course.”);
}
public void Selection()
{
Console.WriteLine(“Java language selected.”);
}
public void Eligible()
{
Console.WriteLine(“You are Eligible for java course.”);
}
}
public class Program
{
static void Main()
{
Java java = new Java();
java.Select(); // Result is – Select your desire course.
java.Selection(); // Result is – Java language selected.
java.Eligible(); // Result is – You are Eligible for java course.
}
}
Here’s a case of class interface inheritance.
- यहाँ ऊपर दिए गए इंटरफ़ेस इनहेरिटेंस ISelectableCourse, ICourse और ISelectable दोनों से क्लास पॉपर्टीज़ इनहेरिट होता है।
- जहा Java क्लास ISelectableCourse को इम्प्लीमेंट करता है, इस वजह इसे दोनों इंटरफ़ेस से सभी मेथड इम्प्लीमेंट करने होंगे, साथ ही ISelectableCourse में डिफाइन किया गया Eligible() क्लास मेथड भी डिफाइन है।
Why use interfaces in C#?
- Decouple code – C# प्रोग्राम में इंटरफ़ेस C# यूजर को प्रोग्राम सोर्स कोड को डीकपल करने का फीचर प्रोवाइड करता हैं। जो आप क्लास में इंटरफ़ेस को इम्प्लीमेंट करते हैं, उन्हें अन्य क्लास के स्पेशल इम्प्लीमेंटेशन डिटेल्स के बारे में डिटेल में जानने की ज़रूरत नहीं होती है।
- Multiple implementations – याद रहे, एक यूजर डिफाइन क्लास प्रोग्राम क्लास एक समय में कई इंटरफ़ेस को इम्प्लीमेंट कर सकती है, जिससे इसे जरूरत पड़ने पर मौजूदा प्रोग्राम में अलग-अलग कॉन्टेक्स्ट रेफ़्रेन्स में यूज़ किया जा सकता है, और यह एक समय में कई क्लास इंटरफ़ेस बिहेवियर को सपोर्ट कर सकता है।
- Polymorphism – क्लास प्रोग्राम में इंटरफेस पॉलीमॉर्फिज्म को क्रिएट करने का मैकेनिज्म प्रोवाइड करता हैं। जिसमे यूजर क्रिएटेड क्लास इंटरफेस टाइप का रेफरेंस अलग-अलग क्लास के ऑब्जेक्ट्स को पॉइंट आउट कर सकता है. जो किसी क्लास में एक ही इंटरफेस को इम्प्लीमेंट करते हैं।
- Design contracts – क्लास प्रोग्राम में इंटरफेस क्लास बिहेवियर के लिए क्लियर ऑब्जेक्ट प्रोटोटाइप को डिफाइन करने का एक प्रोसेस है। इंटरफ़ेस एक लार्ज सिस्टम में स्पेशली यूज़फुल है. जहां आपको क्लास इंटरफ़ेस सिस्टम के अलग-अलग पोरशन को कम्युनिकेट करने की आवश्यकता होती है. जबकि उन्हें एक-दूसरे की इंटरनल डिटेल्स के बारे में ज्यादा पता नहीं होता है।
A detailed summary of interface definition and implementation in C#.
- Interface Definition – किसी C# प्रोग्राम में एक यूजर डिफाइन क्लास इंटरफेस मेथड्स, प्रॉपर्टीज़, या इवेंट्स के साथ एक क्लास ऑब्जेक्ट प्रोटोटाइप को डिफाइन करता है. जिसे किसी यूजर डिफाइन क्लास या स्ट्रक्चर द्वारा इम्प्लीमेंट किया जाना चाहिए।
- Implementation – एक यूजर डिफाइन क्लास या स्ट्रक्चर को इंटरफेस में डिक्लेयर किए गए सभी क्लास फील्ड मेंबर्स को इम्प्लीमेंट करना चाहिए और इन क्लास मेंबर्स के लिए एक रियल सोर्स कोड प्रोवाइड करना चाहिए।
- Multiple Interfaces – एक यूजर डिफाइन क्लास एक समय में एक से ज़्यादा क्लास इंटरफेस को इम्प्लीमेंट कर सकती है. जिससे की वह किसी क्लास में इंडिविजुअल मल्टीप्ल क्लास बिहेवियर को कंबाइन कर सकती है।
- Interface Inheritance – यूजर डिफाइन क्लास में डिक्लेअर इंटरफेस किसी अन्य दूसरे क्लास इंटरफेस प्रॉपर्टीज फीचर्स से इनहेरिट हो सकते हैं. जिससे एक डिराइव्ड या सबक्लास इंटरफेस बेस इंटरफेस से मेंबर्स को ऐड कर ग्रुप कर सकते है।
