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

C# में वर्तमान टाइप के भीतर नेस्टेड टाइप्स प्राप्त करें

वर्तमान टाइप के भीतर नेस्टेड टाइप्स प्राप्त करने के लिए Type.GetNestedTypes() मेथड का उपयोग करें।

सिंटैक्स

public Type[] GetNestedTypes();
public Type[] GetNestedTypes(BindingFlags bindingAttr);

उदाहरण 1: पब्लिक नेस्टेड टाइप्स (डिफ़ॉल्ट)

using System;

public class Demo {
    public static void Main() {
        Type type1 = typeof(Subject);
        
        try {
            Type[] type2 = type1.GetNestedTypes();
            Console.WriteLine("Nested Types...");
            for (int i = 0; i < type2.Length; i++) {
                Console.WriteLine(" {0} ", type2[i]);
            }
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

public class Subject {
    public class BasicSubject { }
    public class AdvSubject { }
}

आउटपुट

Nested Types...
Subject+BasicSubject
Subject+AdvSubject

उदाहरण 2: BindingFlags के साथ

using System;
using System.Reflection;

public class Demo {
    public static void Main() {
        Type type1 = typeof(Subject);
        
        try {
            // केवल पब्लिक इंस्टेंस नेस्टेड टाइप्स
            Type[] type2 = type1.GetNestedTypes(BindingFlags.Public);
            Console.WriteLine("Nested Types...");
            for (int i = 0; i < type2.Length; i++) {
                Console.WriteLine(" {0} ", type2[i]);
            }
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

public class Subject {
    public class BasicSubject { }
    public class AdvSubject { }
}

आउटपुट

Nested Types...
Subject+BasicSubject
Subject+AdvSubject

BindingFlags विकल्प

फ्लैगविवरण
BindingFlags.Publicपब्लिक नेस्टेड टाइप्स शामिल करें
BindingFlags.NonPublicनॉन-पब्लिक (प्राइवेट, प्रोटेक्टेड) नेस्टेड टाइप्स शामिल करें
BindingFlags.Staticस्टेटिक नेस्टेड टाइप्स शामिल करें
BindingFlags.Instanceइंस्टेंस नेस्टेड टाइप्स शामिल करें (नेस्टेड टाइप्स के लिए लागू नहीं)

नेस्टेड टाइप्स का उपयोग

// इंस्टेंस बनाना
Type nestedType = typeof(Subject).GetNestedType("BasicSubject");
object instance = Activator.CreateInstance(nestedType);

// नेस्टेड टाइप के मेंबर्स एक्सेस
var members = nestedType.GetMembers();
foreach (var m in members) {
    Console.WriteLine(m.Name);
}

सामान्य उपयोग के मामले

  • रिफ्लेक्शन-आधारित सीरियलाइज़र्स
  • डायनामिक टाइप डिस्कवरी
  • प्लगइन आर्किटेक्चर
  • कोड जनरेशन टूल्स
  • टेस्टिंग फ्रेमवर्क्स
  1. - C# में Enum.GetType(): एन्यूमरेशन का प्रकार प्राप्त करना

    GetType() मेथड किसी भी ऑब्जेक्ट का रनटाइम टाइप लौटाता है। एनम मानों पर उपयोग करके उनका एन्यूमरेशन टाइप और अंतर्निहित टाइप जान सकते हैं। उदाहरण using System; public class Demo { public static void Main() { Enum[] values = { ConsoleColor.Blue, DayOfWeek.Sunday }; Co

  1. - पायथन में फ्लोट टाइप्स के लिए मशीन लिमिट्स की जानकारी प्राप्त करें

    पायथन नम्पी में फ्लोट टाइप्स के लिए मशीन लिमिट्स की जानकारी प्राप्त करने के लिए numpy.finfo() मेथड का उपयोग करें। पहला पैरामीटर फ्लोटिंग टाइप होता है यानी वह फ्लोट डेटा टाइप जिसके बारे में जानकारी प्राप्त करनी है। चरण सबसे पहले, आवश्यक लाइब्रेरी इम्पोर्ट करें: import numpy as np min दिए गए dtype

  1. - पायथन में इंटीजर टाइप्स के लिए मशीन लिमिट्स की जानकारी प्राप्त करें

    पायथन नम्पी में इंटीजर टाइप्स के लिए मशीन लिमिट्स की जानकारी प्राप्त करने के लिए numpy.iinfo() मेथड का उपयोग करें। पहला पैरामीटर int_type होता है यानी वह इंटीजर डेटा टाइप जिसके बारे में जानकारी प्राप्त करनी है। चरण सबसे पहले, आवश्यक लाइब्रेरी इम्पोर्ट करें: import numpy as np min दिए गए dtype का