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.GetDefaultMembers-Methode: ()

 

Veröffentlicht: Oktober 2016

Sucht nach den für den aktuellen Type definierten Membern, deren DefaultMemberAttribute festgelegt ist.

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

public virtual MemberInfo[] GetDefaultMembers()

Rückgabewert

Type: System.Reflection.MemberInfo[]

Ein Array von MemberInfo-Objekten, die alle Standardmember des aktuellen Type darstellen.

- oder -

Ein leeres Array vom MemberInfo-Typ, wenn der aktuelle Type keine Standardmember besitzt.

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

Diese Methode kann von einer abgeleiteten Klasse überschrieben werden.

Mitglieder enthalten Eigenschaften, Methoden, Felder, Ereignisse und So weiter.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von zurückgegeben werden die Get -Methode auf, wenn für einen Typ reflektieren.

Memberart

Statisch

Nicht statisch

Konstruktor

Nein

Nein

Feld

Nein

Ja. Ein Feld ist immer nach Name und Signatur ausblenden.

Ereignis

Nicht zutreffend

Das allgemeine Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft implementieren. Die Reflektion behandelt Eigenschaften als nach Namen und Signatur ausblenden. Siehe Hinweis 2 weiter unten.

Methode

Nein

Ja. Eine Methode (virtuelle und nicht virtuelle) kann im Hintergrund nach Namen oder nach Name und Signatur ausblenden.

Geschachtelter Typ

Nein

Nein

Eigenschaft

Nicht zutreffend

Das allgemeine Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft implementieren. Die Reflektion behandelt Eigenschaften als nach Namen und Signatur ausblenden. Siehe Hinweis 2 weiter unten.

  1. Nach Name und Signatur ausblenden berücksichtigt alle Teile der Signatur, benutzerdefinierte Modifizierer, einschließlich Typen, Parametertypen, Sentinels enthält und nicht verwaltete Aufrufkonventionen zurück. Dies ist ein binärer Vergleich.

  2. Für die Reflektion sind die Eigenschaften und Ereignisse nach Name und Signatur ausblenden. Wenn Sie eine Eigenschaft mit einer Get und Set-Accessor in der Basisklasse haben, aber die abgeleitete Klasse nur einen Get-Accessor hat, die Eigenschaft der abgeleiteten Klasse blendet die Basisklasse-Eigenschaft, und Sie sind nicht in der Lage, die Setter-Methode der Basisklasse zugreifen.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn die aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo Objekte, wobei die Typparameter durch die entsprechenden Typargumente ersetzt. Zum Beispiel wenn Klasse C<T> verfügt über eine Eigenschaft P zurückgibt T, Aufrufen GetDefaultMembers auf C<int> gibt int P in c# (Property P As Integer in Visual Basic).

Wenn die aktuelle Type stellt ein Typparameter in der Definition eines generischen Typs oder einer generischen Methode, diese Methode sucht, die Mitglieder der Class-Einschränkung oder die Elemente der Object befindet sich kein Class-Einschränkung.

Im folgende Beispiel ruft die Informationen des MyClass und die Standardmember angezeigt.


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

[DefaultMemberAttribute("Age")]   
public class MyClass
{
    public void Name(String s) {}
    public int Age
    {
        get
        {
            return 20;
        }
    }
    public static void Main()
    {
        try
        {
            Type  myType = typeof(MyClass);
            MemberInfo[] memberInfoArray = myType.GetDefaultMembers();
            if (memberInfoArray.Length > 0)
            {
                foreach(MemberInfo memberInfoObj in memberInfoArray)
                {
                    Console.WriteLine("The default member name is: " + memberInfoObj.ToString());
                }
            }
            else
            {
                Console.WriteLine("No default members are available."); 
            }
        }
        catch(InvalidOperationException e)
        {
            Console.WriteLine("InvalidOperationException: " + e.Message);
        }
        catch(IOException e)
        {
            Console.WriteLine("IOException: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception: " + e.Message);
        }
    }
}

.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
Zurück zum Anfang
Anzeigen: