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

 

Bestimmt, ob der aktuelle Type vom angegebenen Type abgeleitet ist.

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

[ComVisibleAttribute(true)]
public virtual bool IsSubclassOf(
	Type c
)

Parameter

c
Type: System.Type

Der Typ, der mit dem aktuellen Typ verglichen werden soll.

Rückgabewert

Type: System.Boolean

true, wenn der aktuelle Type von c abgeleitet ist, andernfalls false. Diese Methode gibt auch dann false zurück, wenn c und der aktuelle Type gleich sind.

Exception Condition
ArgumentNullException

c ist null.

Sie erreichen die IsSubclassOf Methode, um Folgendes festzulegen:

  • Gibt an, ob eine Klasse von einem anderen abgeleitet ist.

  • Ob ein Typ abgeleitet ValueType. Allerdings die IsValueType effizienter lässt sich bestimmen, ob ein Typ ein Werttyp ist.

  • Ob ein Typ abgeleitet Enum. Allerdings die IsEnum Methode ist eine effizientere Methode zum bestimmen, ob ein Typ eine Enumeration ist.

  • Gibt an, ob ein Typ ein Delegat ist, ob er entweder abgeleitet Delegate oder MulticastDelegate.

Die IsSubclassOf Methode kann nicht verwendet werden, um zu bestimmen, ob eine Schnittstelle von einer anderen Schnittstelle abgeleitet wird, oder gibt an, ob eine Klasse eine Schnittstelle implementiert. Verwenden derIsAssignableFrom Methode für diesen Zweck, wie im folgenden Beispiel gezeigt.

using System;

public interface IInterface
{
   void Display();
}

public class Implementation : IInterface
{
   public void Display()
   {
      Console.WriteLine("The implementation...");
   }
}

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Implementation is a subclass of IInterface:   {0}",
                        typeof(Implementation).IsSubclassOf(typeof(IInterface)));
      Console.WriteLine("IInterface is assignable from Implementation: {0}",
                        typeof(IInterface).IsAssignableFrom(typeof(Implementation)));
   }
}
// The example displays the following output:
//       Implementation is a subclass of IInterface:   False
//       IInterface is assignable from Implementation: True

Wenn das aktuelle Type jedoch einen Typparameter darstellt, in der Definition einer generischen Typ- oder Methodendefinition, abgeleitet aus seiner Class-Einschränkung oder System.Object hat keine klasseneinschränkung.

System_CAPS_noteHinweis

Außer in Verbindung mit Schnittstellen, IsSubclassOf ist das Gegenteil von IsAssignableFrom. D. h. wenn t1.IsSubclassOf(t2) ist true, klicken Sie dann t2.IsAssignableFrom(t1) ist auch true.

Diese Methode kann durch eine abgeleitete Klasse überschrieben werden.

Das folgende Beispiel erstellt eine Klasse namens Class1und eine abgeleitete Klasse mit dem Namen DerivedC1. Ruft die IsSubclassOf Methode, um anzugeben, dass DerivedC1 ist eine Unterklasse von Class1.

using System;

public class Class1 { }
public class DerivedC1 : Class1 { }

class IsSubclassTest
{
   public static void Main()
   {
      Console.WriteLine("DerivedC1 subclass of Class1: {0}",
                         typeof(DerivedC1).IsSubclassOf(typeof(Class1)));
   }
}
// The example displays the following output:
//        DerivedC1 subclass of Class1: True

.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: