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

MemberInfo.DeclaringType-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft die Klasse, die diesen Member deklariert.

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

public abstract Type DeclaringType { get; }

Eigenschaftswert

Type: System.Type

Die Type -Objekt für die Klasse, die diesen Member deklariert.

Die DeclaringType Eigenschaft ruft einen Verweis auf die Type -Objekt für den Typ, der diesen Member deklariert. Ein Member eines Typs ist entweder vom Typ deklariert oder von einem Basistyp vererbt also die Type zurückgegebene Objekt der DeclaringType Eigenschaft möglicherweise nicht identisch mit der Type Objekt zum Abrufen des aktuellen MemberInfo Objekt.

  • Wenn die Type Objekt aus der MemberInfo -Objekt abgerufen wurde dieses Elements wurden keine deklariert die DeclaringType -Eigenschaft einen seiner Basistypen darstellen.

  • Wenn die MemberInfo Objekt ist ein globales Element (d. h., wenn es erhalten wurde die Module.GetMethods -Methode, die globale Methoden für ein Modul zurückgegeben), die zurückgegebene DeclaringType werden null.

Das folgende Beispiel definiert eine Schnittstelle, IValue, mit einem einzelnen Element, GetValue. Außerdem definiert vier Klassen: A, eine Basisklasse, die implementiert die IValue Schnittstelle; B, erbt von A und blendet die Implementierung von GetValue aus der Implementierung der Basisklasse; C, erbt einfach von A; und D, erbt von A und überschreibt die GetValue Methode. Das Beispiel ruft dann ab, ein MemberInfo Objekt für jeden Member des Typs (einschließlich Mitglieder von geerbten Object) und zeigt den Wert der seine DeclaringType Eigenschaft.

using System;
using System.Reflection;

interface IValue 
{
   int GetValue() ;
};

class A : IValue 
{
   public virtual int GetValue() 
   { 
      return 0; 
   }
};

class B : A 
{
   public new int GetValue() 
   { 
      return 0; 
   }
};

class C : A 
{ };

class D : A
{
   public override int GetValue()
   {
      return 0;
   }
}

public class Example
{
   public static void Main()
   {
      // Get members of IValue interface.
      ShowMembersAndDeclaringTypes(typeof(IValue));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(A));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(B));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(C));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(D));
      Console.WriteLine();
   }

   private static void ShowMembersAndDeclaringTypes(Type t)
   {
      MemberInfo[] members = t.GetMembers();
      Console.WriteLine("{0} Members: ", t.Name);
      foreach (var member in members)
         Console.WriteLine("   {0}, Declaring type: {1}", 
                           member.Name, member.DeclaringType.Name); 
   }
}
// The example displays the following output:
//       IValue Members:
//          GetValue, Declaring type: IValue
//       
//       A Members:
//          GetValue, Declaring type: A
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: A
//       
//       B Members:
//          GetValue, Declaring type: B
//          GetValue, Declaring type: A
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: B
//       
//       C Members:
//          GetValue, Declaring type: A
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: C
//       
//       D Members:
//          GetValue, Declaring type: D
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: D

Beachten Sie, die den deklarierenden Typ des A.GetValue ist A, die B enthält zwei GetValue Methoden: eine, die deklariert, indem A und vom B, und den deklarierenden Typ der D.GetValue ist D.

System_CAPS_noteHinweis

DeclaringType Gibt nur die Namen der Member und die Namen der deklarierenden Typen zurück. Rufen Sie zum Zurückgeben des Members mit ihren Prototypen MemberInfo.ToString.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: