परिचय
स्ट्रक्चर (struct) C# में एक वैल्यू टाइप डेटा टाइप है। यह संबंधित डेटा को एक ही वेरिएबल में समूहित करने की अनुमति देता है। struct कीवर्ड का उपयोग करके परिभाषित किया जाता है।
स्ट्रक्चर की विशेषताएं
- मेथड, फ़ील्ड, इंडेक्सर, प्रॉपर्टी, ऑपरेटर मेथड और इवेंट हो सकते हैं।
- परिभाषित कंस्ट्रक्टर हो सकते हैं, लेकिन डिस्ट्रक्टर नहीं। डिफ़ॉल्ट कंस्ट्रक्टर स्वचालित रूप से प्रदान किया जाता है और इसे बदला नहीं जा सकता।
- क्लास के विपरीत, स्ट्रक्चर अन्य स्ट्रक्चर या क्लास से इनहेरिट नहीं कर सकते।
- स्ट्रक्चर अन्य स्ट्रक्चर या क्लास के लिए बेस नहीं हो सकते।
- एक स्ट्रक्चर एक या अधिक इंटरफ़ेस इम्प्लीमेंट कर सकता है।
उदाहरण: छात्र स्ट्रक्चर
struct Student
{
public string name;
public int id;
public string subject;
}
उपयोग उदाहरण
using System;
class Program
{
struct Student
{
public string name;
public int id;
public string subject;
}
static void Main()
{
Student s1;
s1.name = "Rahul";
s1.id = 101;
s1.subject = "Math";
Console.WriteLine("Name: {0}, ID: {1}, Subject: {2}", s1.name, s1.id, s1.subject);
Console.ReadKey();
}
}
स्ट्रक्चर बनाम क्लास
| विशेषता | स्ट्रक्चर (struct) | क्लास (class) |
|---|---|---|
| टाइप | वैल्यू टाइप | रेफरेंस टाइप |
| इनहेरिटेंस | नहीं (केवल इंटरफ़ेस) | हाँ |
| डिफ़ॉल्ट कंस्ट्रक्टर | स्वचालित, पैरामीटर रहित | उपयोगकर्ता परिभाषित संभव |
| मेमोरी | स्टैक पर आवंटित | हीप पर आवंटित |
| नल मान | नहीं (जब तक Nullable न हो) | हाँ |