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

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

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

सिंटैक्स

public Type GetNestedType(string name);
public Type GetNestedType(string name, BindingFlags bindingAttr);

उदाहरण 1: मौजूदा नेस्टेड टाइप प्राप्त करना

using System;

public class Demo {
    public static void Main() {
        Type type1 = typeof(Subject);
        
        try {
            Type type2 = type1.GetNestedType("AdvSubject");
            Console.Write("NestedType = " + type2);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

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

आउटपुट

NestedType = Subject+AdvSubject

उदाहरण 2: नल नाम पास करना (एक्सेप्शन)

using System;

public class Demo {
    public static void Main() {
        Type type1 = typeof(Subject);
        
        try {
            Type type2 = type1.GetNestedType(null);
            Console.Write("NestedType = " + type2);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

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

आउटपुट

System.ArgumentNullException

महत्वपूर्ण बिंदु

  • name पैरामीटर नल नहीं हो सकता - ArgumentNullException फेंकता है
  • केस-सेंसिटिव नाम मिलान
  • यदि नहीं मिला तो null लौटाता है (एक्सेप्शन नहीं)
  • BindingFlags ओवरलोड नॉन-पब्लिक नेस्टेड टाइप्स के लिए अनुमति देता है

BindingFlags के साथ नॉन-पब्लिक नेस्टेड टाइप

using System;
using System.Reflection;

public class Subject {
    public class PublicNested { }
    private class PrivateNested { }
    protected class ProtectedNested { }
}

public class Demo {
    public static void Main() {
        Type type = typeof(Subject);
        
        // पब्लिक (डिफ़ॉल्ट)
        var publicNested = type.GetNestedType("PublicNested");
        Console.WriteLine("Public: " + publicNested);
        
        // नॉन-पब्लिक
        var privateNested = type.GetNestedType("PrivateNested", BindingFlags.NonPublic);
        Console.WriteLine("Private: " + privateNested);
        
        var protectedNested = type.GetNestedType("ProtectedNested", BindingFlags.NonPublic);
        Console.WriteLine("Protected: " + protectedNested);
        
        // मौजूद नहीं
        var missing = type.GetNestedType("Missing");
        Console.WriteLine("Missing: " + missing);  // null
    }
}

आउटपुट

Public: Subject+PublicNested
Private: Subject+PrivateNested
Protected: Subject+ProtectedNested
Missing: 

GetNestedType vs GetNestedTypes

मेथडरिटर्नउपयोग
GetNestedType(name)Type (सिंगल)नाम से विशिष्ट नेस्टेड टाइप
GetNestedTypes()Type[] (ऐरे)सभी नेस्टेड टाइप्स
  1. - C# में वर्तमान एन्यूमरेशन प्रकार के सदस्यों के नाम प्राप्त करें

    Type.GetEnumNames() मेथड एन्यूमरेशन स्थिरांक के नामों का एक सरणी लौटाता है। यह केवल एनम प्रकारों पर काम करता है; अन्यथा ArgumentException फेंकता है। उदाहरण 1: गैर-एनम प्रकार (string) using System; public class Demo { enum Vehicle { Car, Bus, Bike } public static void Main() { tr

  1. - C# में वर्तमान इंस्टेंस का प्रकार प्राप्त करें

    C# में किसी ऑब्जेक्ट के वर्तमान इंस्टेंस का प्रकार प्राप्त करने के लिए, हम GetType() मेथड का उपयोग करते हैं। यह मेथड System.Object से विरासत में मिला है और ऑब्जेक्ट के रनटाइम प्रकार को दर्शाने वाला Type ऑब्जेक्ट लौटाता है। यह रिफ्लेक्शन और डिबगिंग के लिए उपयोगी है। उदाहरण 1: स्ट्रिंग का प्रकार प्र

  1. - C# में Enum.GetType(): एन्यूमरेशन का प्रकार प्राप्त करना

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