Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Type.GetNestedTypes-Methode (BindingFlags)

 

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen die im aktuellen Type geschachtelten Typen.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public abstract Type[] GetNestedTypes(
	BindingFlags bindingAttr
)

Parameter

bindingAttr
Type: System.Reflection.BindingFlags

Eine Bitmaske aus einem oder mehreren BindingFlags, die angeben, wie die Suche durchgeführt wird.

- oder -

0 (null), damit null zurückgegeben wird.

Rückgabewert

Type: System.Type[]

Ein Array von Type-Objekten, das alle im aktuellen Type geschachtelten Typen darstellt, die mit den angegebenen Bindungseinschränkungen übereinstimmen (die Suche ist nicht rekursiv) oder ein leeres Array vom Typ Type, wenn keine geschachtelten Typen gefunden werden, die mit den Bindungseinschränkungen übereinstimmen.

Die Suche nach geschachtelten Typen ist nicht rekursiv.

Die GetNestedTypes Methode kehrt Typen in einer bestimmten Reihenfolge, z. B. alphabetische oder Reihenfolge der Deklaration. Code muss nicht abhängig von der Reihenfolge, in der Typen zurückgegeben werden, da, das variieren kann.

Die folgenden BindingFlags Filter Flags verwendet werden, können zu definieren, welche geschachtelten Typen in die Suche einbeziehen:

Diese Methode gibt nur die geschachtelten Typen des aktuellen Typs. Die Basisklassen des aktuellen Typs werden nicht durchsucht. Um Typen zu suchen, die geschachtelt werden in Basisklassen, müssen Sie die Vererbungshierarchie aufrufen durchlaufen GetNestedTypes auf jeder Ebene.

BindingFlags.Instance und BindingFlags.Static werden ignoriert.

Beim Aufruf dieser Methode nur das BindingFlags.Public Flag oder nur die BindingFlags.NonPublic Flag zurück, die angegebenen geschachtelten Typen und alle anderen Flags ist nicht erforderlich.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Wenn die aktuelle Type stellt einen Typparameter in der Definition einer generischen Typ- oder Methodendefinition, diese Methode sucht die geschachtelten Typen eines Class-Einschränkung.

Wenn ein geschachtelter Typ generisch ist, gibt diese Methode die generische Typdefinition. Dies gilt auch, wenn der einschließende generische Typ ein geschlossener konstruierter Typ ist.

System_CAPS_noteHinweis

Wenn die aktuelle Type stellt einen generischen Typ in c#, Visual Basic oder C++ definiert die geschachtelten Typen sind alle generisch, auch wenn sie keine eigenen generischen Parameter haben. Dies gilt nicht unbedingt für geschachtelte Typen in dynamischen Assemblys definiert sind oder mit kompiliert die Ilasm.exe (IL Assembler).

Informationen über geschachtelte generische Typen und das Konstruieren generischer Typen aus generischen Typdefinitionen finden Sie unter MakeGenericType.

Im folgende Beispiel werden zwei geschachtelte öffentliche Klassen und zwei geschachtelte geschützten Klassen erstellt, und zeigt Informationen für Klassen, die mit die angegebenen bindungseinschränkungen übereinstimmen.

using System;
using System.Reflection;

// Create a class with 2 nested public and 2 nested protected classes.
public class MyTypeClass
{
    public class Myclass1
    {
    }

    public class Myclass2 
    {
    }

    protected class MyClass3
    {
    }

    protected class MyClass4
    {
    }
}

public class TypeMain
{
    public static void Main() 
    {
        Type myType = (typeof(MyTypeClass));
        // Get the public nested classes.
        Type[] myTypeArray = myType.GetNestedTypes(BindingFlags.Public);
        Console.WriteLine("The number of nested public classes is {0}.", myTypeArray.Length);
        // Display all the public nested classes.
        DisplayTypeInfo(myTypeArray);
        Console.WriteLine();

        // Get the nonpublic nested classes.
        Type[] myTypeArray1 = myType.GetNestedTypes(BindingFlags.NonPublic|BindingFlags.Instance);
        Console.WriteLine("The number of nested protected classes is {0}.", myTypeArray1.Length);
        // Display all the nonpublic nested classes.
        DisplayTypeInfo(myTypeArray1);		
    }

    public static void DisplayTypeInfo(Type[] myArrayType)
    {
        // Display the information for all the nested classes.
        foreach (var t in myArrayType)
            Console.WriteLine("The name of the nested class is {0}.", t.FullName);
    }
}
// The example displays the following output:
//       The number of public nested classes is 2.
//       The name of the nested class is MyTypeClass+Myclass1.
//       The name of the nested class is MyTypeClass+Myclass2.
//       
//       The number of protected nested classes is 2.
//       The name of the nested class is MyTypeClass+MyClass3.
//       The name of the nested class is MyTypeClass+MyClass4.

.NET Framework
Verfügbar seit 1.1
Portable Class Library
Unterstützt in: portable .NET platforms
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: