Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

MemberInfo.DeclaringType-Eigenschaft

Ruft die Klasse ab, die diesen Member deklariert.

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

public abstract Type DeclaringType { get; }

Eigenschaftswert

Typ: System.Type
Das Type-Objekt für die Klasse, in der dieser Member deklariert ist.

Implementiert

_MemberInfo.DeclaringType

Die DeclaringType-Eigenschaft ruft einen Verweis auf das Type-Objekt für den Typ ab, der diesen Member deklariert. Ein Member eines Typs wird von einem Typ deklariert oder von einem Basistyp vererbt, sodass das von der DeclaringType-Eigenschaft zurückgegebene Type-Objekt möglicherweise nicht mit dem Type-Objekt identisch ist, das zum Abrufen von Informationen aus dem aktuellen MemberInfo-Objekt verwendet wird.

  • Wenn das Type-Objekt, von dem dieses MemberInfo-Objekt abgerufen wurde, diesen Member nicht deklariert hat, stellt die DeclaringType-Eigenschaft einen seiner Basistypen dar.

  • Wenn das MemberInfo-Objekt ein globaler Member ist (d. h., es wurde von der Module.GetMethods-Methode abgerufen, wodurch globale Methoden für ein Modul zurückgegeben werden), hat der zurückgegebene DeclaringType-Typ den Wert null.

Das folgende Beispiel zeigt die Verwendung von DeclaringType mit Klassen und Schnittstellen. Außerdem werden die Membernamen der System.IO.BufferedStream-Klasse zusammen mit der Klasse abgerufen, in der diese Member deklariert sind. Beachten Sie auch, dass beim Überschreiben der virtuellen Methode M aus A durch B die Methode im Wesentlichen neu definiert bzw. neu deklariert wird. Deshalb meldet MethodInfo von B.M den Deklarationstyp als B und nicht als A, selbst wenn diese Methode ursprünglich in A deklariert wurde.


using System;
using System.IO;
using System.Reflection;

namespace MyNamespace1 
{
    interface i 
    {
        int MyVar() ;
    };
    // DeclaringType for MyVar is i.

    class A : i 
    {
        public int MyVar() { return 0; }
    };
    // DeclaringType for MyVar is A.

    class B : A 
    {
        new int MyVar() { return 0; }
    };
    // DeclaringType for MyVar is B.

    class C : A 
    {
    };
    // DeclaringType for MyVar is A.

}

namespace MyNamespace2 
{
    class Mymemberinfo 
    { 

        public static void Main(string[] args) 
        { 

            Console.WriteLine ("\nReflection.MemberInfo");

            //Get the Type and MemberInfo. 
            Type MyType =Type.GetType("System.IO.BufferedStream");
            MemberInfo[] Mymemberinfoarray = MyType.GetMembers();

            //Get and display the DeclaringType method. 
            Console.WriteLine("\nThere are {0} members in {1}.", Mymemberinfoarray.Length, MyType.FullName); 

            foreach (MemberInfo Mymemberinfo in Mymemberinfoarray) 
            {  
                Console.WriteLine("Declaring type of {0} is {1}.", Mymemberinfo.Name, Mymemberinfo.DeclaringType); 
            }
        }
    }
}

namespace MyNamespace3 
{
    class A 
    {
        virtual public void M () {}
    }
    class B: A 
    {
        override public void M () {}
    }
}


HinweisHinweis

DeclaringType gibt nur die Namen der Member und die Namen ihrer Deklarationstypen zurück. Um die Membernamen mit ihren Prototypen zurückzugeben, rufen Sie MemberInfo.ToString auf.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft